Systems and methods for contextualizing services for inline mobile banner advertising

ABSTRACT

The present disclosure is directed to systems and methods for processing advertisement opportunities when a user views content on a mobile device. An agent on a mobile device may contextualize a portion of a page being viewed to identify and send contextual data to a contextualization service. The contextualization service may use the contextual data to select a campaign from a plurality of campaigns to deliver an in line banner advertisement for content being viewed. Based on the selected campaign, the contextualization service may send the agent an advertisement or campaign information for display, such as an inline banner at a natural break in the content being viewed. Instead of having an advertisement predetermined or fixed prior to the display of the content, the present systems and methods may dynamically contextualize the page at the point of viewing based on the content of the page being viewed.

FIELD OF THE INVENTION

The disclosure generally relates to the field of contextualizing contentfor augmenting a web page, in particular to contextualizing contentcurrently being displayed on a mobile device to deliver an advertisementas an inline banner to the content.

BACKGROUND

Hypertext is used to provide information in a web page. Hypertext is theorganization of computer based text into connected associations enablinga user to quickly access information that the user chooses. An instanceof such an association is called a hyperlink or hypertext link. Ahyperlink, when selected, leads the viewer to another web page (or fileor resource, collectively called the destination page).

In order to access the supplemental information provided throughhyperlinks, viewers are required to leave their current web pages. Thisrequirement interrupts the viewers' web browsing experience. As aresult, most viewers are reluctant to visit the destination pageprovided by hyperlinks.

In some cases, the viewer leaves the web page to visit a destinationpage that does not have information desired by the viewer. The user thenmay have to search for other destination pages to try to obtain thedesired information. This may lead the viewer to perform multiplesearches and visit several pages to find the desired information. Theviewer may become frustrated with the amount of activity to find or notfind the desired information and with leaving the current destinationpage to do so.

SUMMARY OF THE INVENTION

The present solution provides contextualization services to deliver aninline banner advertisement to display within content being viewed on apage on a mobile device. The present solution is directed toadvertisement opportunities at the point of a user viewing content on amobile device, such as while a user is scrolling through textual contentof a web page on their mobile device. In general overview, an agent on amobile device may contextualize a portion of a page being viewed toidentify and send contextual data to the contextualization service of aserver. The contextualization service may use the contextual data toselect a campaign from a plurality of campaigns to deliver an in linebanner advertisement for the content being viewed on the mobile device.Based on the selected campaign, the contextualization service may sendan advertisement or campaign information to the agent for display, suchas an inline banner at a natural break in the content being viewed onthe mobile device. Instead of having an advertisement predetermined orfixed prior to the display of the content on the mobile device, thepresent solution dynamically contextualizes the page at the point of theuser viewing portions of the page on the mobile device (e.g., scrollingthe portion into view) and the contextualization is based on the contentof the page being viewed

In some aspects, the present solution is directed to a method forproviding in-line advertisement for mobile devices. The method includesidentifying, by an agent executing on a mobile device, text in a portionof a web page currently being viewed on the mobile device and sending,by the agent to a server, web page data comprising text identified fromthe portion of the web page. The method also includes receiving, by theagent from the server, an advertisement for a campaign from a pluralityof campaigns selected by the server based on text from the web page datacorresponding to a predetermined set of keywords for the campaign. Theagent may display the advertisement near the portion of the web pagehaving text corresponding to a keyword for the campaign, such as at anatural break in the content of the page following the keyword.

In some embodiments, the method includes identifying, by the agent, textin the portion of the web page comprising a paragraph. In someembodiments, the method includes scrolling, by a user of the mobiledevice, the paragraph into a current view. In some embodiments, themethod includes identifying, by the agent, text in the portion of theweb page that has been viewed for a predetermined length of time. Insome embodiments, the method includes sending, by the agent to theserver, web page data comprising text identified from the portion of theweb page comprising a paragraph. In some embodiments, the methodincludes sending, by the agent to the server, web page data comprisingtext identified from the portion of the web page comprising a paragraphprior to a currently viewed paragraph. In some embodiments, the methodincludes sending, by the agent to the server, web page data comprisingtext identified from the portion of the web page comprising a paragraphsubsequent to a currently viewed paragraph.

In some embodiments, the method includes receiving, by the agent,campaign information from the server. In some embodiments, the methodincludes receiving, by the agent from the server, the advertisementcomprising a banner to be displayed in-line. In some embodiments, themethod includes displaying, by the agent, the advertisement in a breakoccurring after the portion of the web page. In some embodiments, themethod includes inserting, by the agent, a break after the portion ofthe web page. In some embodiments, the method includes inserting, by theagent, the advertisement into the portion of the web page.

In some aspects, the present solution is directed to a system forproviding in-line advertisement for mobile devices, the systemcomprising an agent executing on a mobile device. The agent identifiestext in a portion of a web page currently being viewed on the mobiledevice and sending to a server, web page data comprising text identifiedfrom the portion of the web page. The agent receives from the server, anadvertisement for a campaign from a plurality of campaigns selected bythe server based on text from the web page data corresponding to apredetermined set of keywords for the campaign and displays theadvertisement near the portion of the web page having text correspondingto a keyword for the campaign.

In some embodiments, the agent identifies text in the portion of the webpage comprising a paragraph. In some embodiments, the paragraph isscrolled into a current view. In some embodiments, the agent identifiestext in the portion of the web page that is currently being viewed for apredetermined length of time. In some embodiments, the agent sends tothe server web page data comprising text identified from the portion ofthe web page comprising a paragraph. In some embodiments, the agentsends to the server web page data comprising text identified from theportion of the web page comprising a paragraph prior to a currentlyviewed paragraph. In some embodiments, the agent sends to the server webpage data comprising text identified from the portion of the web pagecomprising a paragraph subsequent to a currently viewed paragraph.

In some embodiments, the agent receives campaign information from theserver. In some embodiments, the agent receives from the server theadvertisement comprising a banner to be displayed in-line. In someembodiments, the agent displays the advertisement in a break occurringafter the portion of the web page. In some embodiments, the agentinserts a break into the web page after the portion of the web page. Insome embodiments, the agent inserts the advertisement into the portionof the web page.

BRIEF DESCRIPTION OF DRAWINGS

The foregoing and other objects, aspects, features, and advantages ofthe present invention will become more apparent and better understood byreferring to the following description taken in conjunction with theaccompanying drawings, in which:

FIG. 1A is a block diagram that depicts an embodiment of an environmentfor providing systems and methods described herein.

FIGS. 1B and 1C are block diagrams of computing devices that may be usedin any of the embodiments of the systems and methods described herein

FIG. 2 is a block diagram that depicts an embodiment of an augmentationserver in FIG. 1.

FIG. 3A is a flow diagram of an embodiment of a method of producingaugmented content.

FIG. 3B is a flow diagram of an embodiment of a method of providingaugmented content to users.

FIG. 3C is a flow diagram of an embodiment of a process of operation ofadvertisement and client code.

FIGS. 4A through 4E are screenshots illustrating a web page, itscorresponding augmented web page, and a viewer's user experienceinteracting with the augmented web page according to one embodiment ofthe present disclosure.

FIG. 5A is block diagram of an embodiment of an ad server platform andplatform services.

FIG. 5B is a diagram of an embodiment of stages of a request from aclient for platform services.

FIG. 5C is a diagram of an embodiment of contextual targeting.

FIG. 5D is a diagram of another embodiment of contextual targeting.

FIG. 5E is a diagram of an embodiment of contextual and behavioraltargeting.

FIG. 5F is a diagram of another embodiment of contextual and behavioraltargeting.

FIG. 5G is a diagram of another embodiment of contextual and behavioraltargeting.

FIG. 5H is a diagram of an embodiment of campaign selection engine.

FIG. 5I is block diagram of an embodiment of a system to provideaugmented content for a keyword on a web page.

FIG. 5J is a diagrammatic view of an embodiment of augmented content.

FIG. 5K is a flow diagram of an embodiment of a method for deliveringaugmented content for a keyword on a web page.

FIG. 6A is a block diagram of an embodiment of a system for contentharvesting keywords.

FIG. 6B is a flow diagram of an embodiment of a method for deliveringaugmented content for keywords identified via content harvesting.

FIG. 6C is a flow diagram of another embodiment of a method fordelivering augmented content for keywords identified via contentharvesting.

FIG. 7 is a block diagram of an embodiment of contextualization servicesfor multiple content delivery mechanisms;

FIG. 8A is a block diagram of an embodiment of a system forcontextualization of a web page for delivering inline advertising tomobile devices;

FIG. 8B is a block diagram of another embodiment of a system forcontextualization of a web page for delivering inline advertising tomobile devices; and

FIG. 8C is a flow diagram of an embodiment of a method forcontextualization for delivering inline advertising to mobile devices.

In the drawings, like reference numbers generally indicate identical,functionally similar, and/or structurally similar elements.

DETAILED DESCRIPTION

For purposes of reading the description of the various embodimentsbelow, the following descriptions of the sections of the specificationand their respective contents may be helpful:

-   -   Section A describes a network and computing environment which        may be useful for practicing embodiments described herein;    -   Section B describes embodiments of systems and methods for        delivering a augmented content;    -   Section C describes embodiments of systems and methods of an ad        server platform for delivering a plurality of advertisement and        augmented content services;    -   Section D describes embodiments of systems and methods of        content harvesting to identify keywords and delivery augmented        content;    -   Section E describes embodiments of systems and methods for        contextualization services; and    -   Section F describes embodiments of systems and methods for        contextualization of a web page for delivering inline        advertising to mobile devices.

A. System and Network Environment

Some of the disclosed embodiments describe examples of a method (andcorresponding system and computer program product) for augmenting fileswith related resources through layered augmentation. Viewers of theaugmented files can access the related resources through a multi-layereddialog box. The process of providing additional resources throughmultilayered dialog box and the multi-layered dialog box arecollectively called layered augmentation.

An embodiment of the method identifies data in a file, associates theidentified data with reference data in a reference database, and storesthe associations in a corresponding augmented file. A viewer of theaugmented file can access resources related to a piece of augmented datathrough layered augmentation. When the viewer moves a pointer over thepiece of augmented data (also called mouse-over), the related resourcesare provided in a multi-layered dialog box. The dialog box is overlaidon the augmented file approximate to the position where the mouse-overoccurred. The viewer can navigate through the related resources in thedialog box without leaving the augmented file.

As described herein, a file includes any types of documents such as webpages. Augmented data, the data with integrated association in anaugmented file, include any types of content such as text and image.Resources provided through layered augmentations include textualcontent, visual content such as images and videos, interactive controlssuch as dialog boxes, and services such as Internet search service andadvertisement. A pointer can be any pointer device such as a mouse, atrackball, a roller, and a touchpad. For purposes of illustration, themethod (and corresponding system and computer program product) isdescribed in terms of augmenting keywords (or key phrases) in web pagesand delivering related advertisements through multi-layered dialog boxesbased on user interactions with the augmented keywords, even though thedisclosed embodiments apply to all other types of content, files, andresources as defined above.

The figures and the following description relate to embodiments by wayof illustration only. Reference will now be made in detail to severalembodiments, examples of which are illustrated in the accompanyingfigures. The figures depict embodiments of the disclosed system (ormethod) for purposes of illustration only. It should be noted that fromthe following discussion, other or alternate embodiments of thestructures and methods disclosed herein will be readily recognized byone skilled in the art as viable alternatives that may be employedwithout departing from the principles described herein.

FIG. 1A illustrates an embodiment of a computing environment 100 foraugmenting web pages and providing viewers of the augmented web pageswith related advertisements through layered augmentation based on userinteraction. As illustrated, the computing environment 100 includes anaugmentation server 110, multiple content providers (or websites) 120,and one or more client computers (or user systems) 130, all of which arecommunicatively coupled through a network 140.

The augmentation server 110 is configured to augment keywords (or othertypes of content) in web pages (or other types of documents) withadvertisements (or other types of resources), and deliver theadvertisements based on user interaction with the augmented keywords.The augmentation server 110 retrieves web pages from the contentproviders 120 and augments the web pages. The augmentation server 110augments a web page by identifying keywords in the web page, associating(or tagging) the keywords with one or more related references in areference database, generating an augmented web page, and storing theassociations in a database. When a user views an augmented web page in aclient computer 130 and moves a pointer over one of the augmentedkeywords (hereinafter “the activated keyword”), the augmentation server110 displays (or avails) related advertisements in the client computer130 through a multi-layered dialog box. An example architecture of theaugmentation server 110 is described in detail below with respect toFIG. 2.

The content providers 120 are entities that provide (or generate), host,publish, control, or otherwise have rights over a collection of webpages (or other types of documents). In one embodiment, the contentproviders 120 are web servers hosting web pages for viewers to access.The content providers 120 may provide web pages to the augmentationserver 110 for layered augmentation. Alternatively, the contentproviders 120 may either instruct or give permission to the augmentationserver 110 to retrieve all or parts of their web pages for layeredaugmentation.

A client 130 may comprise any personal computer (e.g., based on amicroprocessor from the x86 family, the Pentium family, the 680x0family, PowerPC, PA-RISC, MIPS families, the ARM family, the Cellfamily), network computer, wireless device (e.g. mobile computer, PDA,smartphone), information appliance, workstation, minicomputer, mainframecomputer, telecommunications or media device that is capable ofcommunication and that has sufficient processor power and memorycapacity to perform the operations described herein. For example, theclient 130 may comprise a device of the IPOD family of devicesmanufactured by Apple Computer of Cupertino, Calif., a PLAYSTATION 2,PLAYSTATION 3, or PERSONAL PLAYSTATION PORTABLE (PSP) devicemanufactured by the Sony Corporation of Tokyo, Japan, a NINTENDO DS,NINTENDO GAMEBOY, NINTENDO GAMEBOY ADVANCED, NINTENDO REVOLUTION, orNINTENDO WII device manufactured by Nintendo Co., Ltd., of Kyoto, Japan,or an XBOX or XBOX 360 device manufactured by the Microsoft Corporationof Redmond, Wash. In some embodiments, the client may include any of theKindle family of devices sold or provided by Amazon.com.

Operating systems supported by the client 130 can include any member ofthe WINDOWS family of operating systems from Microsoft Corporation ofRedmond, Wash., MacOS, JavaOS, various varieties of Unix (e.g., Solaris,SunOS, Linux, HP-UX, A/IX, and BSD-based distributions), any embeddedoperating system, any real-time operating system, any open sourceoperating system, any proprietary operating system, any operatingsystems for mobile computing devices, or any other operating systemcapable of running on the computing device and performing the operationsdescribed herein. Typical operating systems include: WINDOWS 3.x,WINDOWS 95, WINDOWS 98, WINDOWS 2000, WINDOWS NT 3.51, WINDOWS NT 4.0,WINDOWS CE, WINDOWS XP, and WINDOWS VISTA, all of which are manufacturedby Microsoft Corporation of Redmond, Wash.; Mac OSX, manufactured byApple Computer of Cupertino, Calif.; OS/2, manufactured by InternationalBusiness Machines of Armonk, N.Y.; and Linux, an open source operatingsystem distributed by, among others, Red Hat, Inc., or any type and/orform of a Unix operating system, among others.

The client computers 130 may be any type and form of client devices forusers to browse web pages (or other types of documents). In oneembodiment, a client computer 130 includes a pointer device (e.g., amouse, a trackball, a roller, a touchpad, or the like), a conventionalweb browser (e.g., Microsoft Internet Explorer™, Mozilla Firefox™, orApple Safari™), and can retrieve and display web pages from the contentproviders 120 in a conventional manner (e.g., using the HyperTextTransfer Protocol). In one embodiment, the client computer 130 displaysaugmented keywords in an augmented web page differently than thenon-augmented content. For example, the augmented keywords can bedisplayed in a double underline style and/or in a color distinctive fromtexts that are not augmented. When a user moves a pointer (e.g., mousepointer) over (e.g., mouse-over) an augmented keyword in the augmentedweb page, the client computer 130 (or the utilized web browser)generates a request and transmits the request to the augmentation server110. The augmentation server 110 receives the request and determinesrelevant advertisements to transmit to the client computer 130. Theclient computer 130 (or the utilized web browser) displays theadvertisements retrieved from the augmentation server 110 in amulti-layered dialog box overlaying the augmented web page and proximateto the location where the mouse-over occurred. The multi-layered dialogbox displays an advertisement and multiple clickable tabs representingthe other retrieved advertisements. The viewer can select (e.g., click)a tab to request the dialog box to display the correspondingadvertisement. The viewer may navigate among the multiple advertisementsand interact with the advertisements without leaving the augmented webpage.

The network 140 is configured to communicatively connect theaugmentation server 110, the content providers 120, and the clientcomputers 130. The network 140 may be a wired or wireless network.Examples of the network 140 include the Internet, an intranet, a WiFinetwork, a WiMAX network, a mobile telephone network, or a combinationthereof. The network 140 may be any type and/or form of network and mayinclude any of the following: a point to point network, a broadcastnetwork, a wide area network, a local area network, a telecommunicationsnetwork, a data communication network, a computer network, an ATM(Asynchronous Transfer Mode) network, a SONET (Synchronous OpticalNetwork) network, a SDH (Synchronous Digital Hierarchy) network, awireless network and a wireline network. In some embodiments, thenetwork 140 may comprise a wireless link, such as an infrared channel orsatellite band. The topology of the network 140 may be a bus, star, orring network topology. The network 140 and network topology may be ofany such network or network topology as known to those ordinarilyskilled in the art capable of supporting the operations describedherein. The network may comprise mobile telephone networks utilizing anyprotocol or protocols used to communicate among mobile devices,including AMPS, TDMA, CDMA, GSM, GPRS or UMTS. In some embodiments,different types of data may be transmitted via different protocols. Inother embodiments, the same types of data may be transmitted viadifferent protocols.

In one embodiment, the augmentation server 110, the content providers120, and/or the client computers 130 are structured to include aprocessor, memory, storage, network interfaces, and applicable operatingsystem and other functional software (e.g., network drivers,communication protocols). The client 120, server 110, and contentproviders 120 may be deployed as and/or executed on any type and form ofcomputing device, such as a computer, network device or appliancecapable of communicating on any type and form of network and performingthe operations described herein.

FIGS. 1B and 1C depict block diagrams of a computing device 100 usefulfor practicing an embodiment of the client 130, server 110 or contentprovider 120. As shown in FIGS. 1B and 1C, each computing device 100includes a central processing unit 101, and a main memory unit 122. Asshown in FIG. 1B, a computing device 100 may include a visual displaydevice 124, a keyboard 126 and/or a pointing device 127, such as amouse. Each computing device 100 may also include additional optionalelements, such as one or more input/output devices 131 a-131 b(generally referred to using reference numeral 131), and a cache memory140 in communication with the central processing unit 101.

The central processing unit 101 is any logic circuitry that responds toand processes instructions fetched from the main memory unit 122. Inmany embodiments, the central processing unit is provided by amicroprocessor unit, such as: those manufactured by Intel Corporation ofMountain View, Calif.; those manufactured by Motorola Corporation ofSchaumburg, Ill.; those manufactured by Transmeta Corporation of SantaClara, Calif.; the RS/6000 processor, those manufactured byInternational Business Machines of White Plains, N.Y.; or thosemanufactured by Advanced Micro Devices of Sunnyvale, Calif. Thecomputing device 100 may be based on any of these processors, or anyother processor capable of operating as described herein.

Main memory unit 122 may be one or more memory chips capable of storingdata and allowing any storage location to be directly accessed by themicroprocessor 101, such as Static random access memory (SRAM), BurstSRAM or SynchBurst SRAM (BSRAM), Dynamic random access memory (DRAM),Fast Page Mode DRAM (FPM DRAM), Enhanced DRAM (EDRAM), Extended DataOutput RAM (EDO RAM), Extended Data Output DRAM (EDO DRAM), BurstExtended Data Output DRAM (BEDO DRAM), Enhanced DRAM (EDRAM),synchronous DRAM (SDRAM), JEDEC SRAM, PC100 SDRAM, Double Data RateSDRAM (DDR SDRAM), Enhanced SDRAM (ESDRAM), SyncLink DRAM (SLDRAM),Direct Rambus DRAM (DRDRAM), or Ferroelectric RAM (FRAM). The mainmemory 122 may be based on any of the above described memory chips, orany other available memory chips capable of operating as describedherein. In the embodiment shown in FIG. 1B, the processor 101communicates with main memory 122 via a system bus 150 (described inmore detail below). FIG. 1C depicts an embodiment of a computing device100 in which the processor communicates directly with main memory 122via a memory port 103. For example, in FIG. 1B the main memory 122 maybe DRAM.

FIG. 1C depicts an embodiment in which the main processor 101communicates directly with cache memory 140 via a secondary bus,sometimes referred to as a backside bus. In other embodiments, the mainprocessor 101 communicates with cache memory 140 using the system bus150. Cache memory 140 typically has a faster response time than mainmemory 122 and is typically provided by SRAM, BSRAM, or EDRAM. In theembodiment shown in FIG. 1C, the processor 101 communicates with variousI/O devices 131 via a local system bus 150. Various busses may be usedto connect the central processing unit 101 to any of the I/O devices131, including a VESA VL bus, an ISA bus, an EISA bus, a MicroChannelArchitecture (MCA) bus, a PCI bus, a PCI-X bus, a PCI-Express bus, or aNuBus. For embodiments in which the I/O device is a video display 124,the processor 101 may use an Advanced Graphics Port (AGP) to communicatewith the display 124. FIG. 1C depicts an embodiment of a computer 100 inwhich the main processor 101 communicates directly with I/O device 131 bvia HyperTransport, Rapid I/O, or InfiniBand. FIG. 1C also depicts anembodiment in which local busses and direct communication are mixed: theprocessor 101 communicates with I/O device 131 b using a localinterconnect bus while communicating with I/O device 131 a directly.

The computing device 100 may support any suitable installation device116, such as a floppy disk drive for receiving floppy disks such as3.5-inch, 5.25-inch disks or ZIP disks, a CD-ROM drive, a CD-R/RW drive,a DVD-ROM drive, tape drives of various formats, USB device, hard-driveor any other device suitable for installing software and programs suchas any software 121 related to providing an agent, such as a safe agent,as described herein. The computing device 100 may further comprise astorage device 128, such as one or more hard disk drives or redundantarrays of independent disks, for storing an operating system and otherrelated software, and for storing application software programs such asany program related to an agent 121 as described herein. Optionally, anyof the installation devices 116 could also be used as the storage device128. Additionally, the operating system and the software can be run froma bootable medium, for example, a bootable CD, such as KNOPPIX®, abootable CD for GNU/Linux that is available as a GNU/Linux distributionfrom knoppix.net.

Furthermore, the computing device 100 may include a network interface118 to interface to a Local Area Network (LAN), Wide Area Network (WAN)or the Internet through a variety of connections including, but notlimited to, standard telephone lines, LAN or WAN links (e.g., 802.11,T1, T3, 56kb, X.25), broadband connections (e.g., ISDN, Frame Relay,ATM), wireless connections, or some combination of any or all of theabove. The network interface 118 may comprise a built-in networkadapter, network interface card, PCMCIA network card, card bus networkadapter, wireless network adapter, USB network adapter, modem or anyother device suitable for interfacing the computing device 100 to anytype of network capable of communication and performing the operationsdescribed herein.

A wide variety of I/O devices 131 a-131 n may be present in thecomputing device 100. Input devices include keyboards, mice, trackpads,trackballs, microphones, and drawing tablets. Output devices includevideo displays, speakers, inkjet printers, laser printers, anddye-sublimation printers. The I/O devices 131 may be controlled by anI/O controller 123 as shown in FIG. 1B. The I/O controller may controlone or more I/O devices such as a keyboard 126 and a pointing device127, e.g., a mouse or optical pen. Furthermore, an I/O device may alsoprovide storage 128 and/or an installation medium 116 for the computingdevice 100. In still other embodiments, the computing device 100 mayprovide USB connections to receive handheld USB storage devices such asthe USB Flash Drive line of devices manufactured by Twintech Industry,Inc. of Los Alamitos, Calif.

In some embodiments, the computing device 100 may comprise or beconnected to multiple display devices 124 a-124 n, which each may be ofthe same or different type and/or form. As such, any of the I/O devices131 a-131 n and/or the I/O controller 123 may comprise any type and/orform of suitable hardware, software, or combination of hardware andsoftware to support, enable or provide for the connection and use ofmultiple display devices 124 a-124 n by the computing device 100. Forexample, the computing device 100 may include any type and/or form ofvideo adapter, video card, driver, and/or library to interface,communicate, connect or otherwise use the display devices 124 a-124 n.In one embodiment, a video adapter may comprise multiple connectors tointerface to multiple display devices 124 a-124 n. In other embodiments,the computing device 100 may include multiple video adapters, with eachvideo adapter connected to one or more of the display devices 124 a-124n. In some embodiments, any portion of the operating system of thecomputing device 100 may be configured for using multiple displays 124a-124 n. In other embodiments, one or more of the display devices 124a-124 n may be provided by one or more other computing devices, such ascomputing devices 100 a and 100 b connected to the computing device 100,for example, via a network. These embodiments may include any type ofsoftware designed and constructed to use another computer's displaydevice as a second display device 124 a for the computing device 100.One ordinarily skilled in the art will recognize and appreciate thevarious ways and embodiments that a computing device 100 may beconfigured to have multiple display devices 124 a-124 n.

In further embodiments, an I/O device 131 may be a bridge 170 betweenthe system bus 150 and an external communication bus, such as a USB bus,an Apple Desktop Bus, an RS-232 serial connection, a SCSI bus, aFireWire bus, a FireWire 800 bus, an Ethernet bus, an AppleTalk bus, aGigabit Ethernet bus, an Asynchronous Transfer Mode bus, a HIPPI bus, aSuper HIPPI bus, a SerialPlus bus, a SCI/LAMP bus, a FibreChannel bus,or a Serial Attached small computer system interface bus.

A computing device 100 of the sort depicted in FIGS. 1B and 1C typicallyoperate under the control of operating systems, which control schedulingof tasks and access to system resources. The computing device 100 can berunning any operating system such as any of the versions of theMicrosoft® Windows operating systems, the different releases of the Unixand Linux operating systems, any version of the Mac OS® for Macintoshcomputers, any embedded operating system, any real-time operatingsystem, any open source operating system, any proprietary operatingsystem, any operating systems for mobile computing devices, or any otheroperating system capable of running on the computing device andperforming the operations described herein. Typical operating systemsinclude: WINDOWS 3.x, WINDOWS 95, WINDOWS 98, WINDOWS 2000, WINDOWS NT3.51, WINDOWS NT 4.0, WINDOWS CE, and WINDOWS XP, all of which aremanufactured by Microsoft Corporation of Redmond, Wash.; MacOS,manufactured by Apple Computer of Cupertino, Calif.; OS/2, manufacturedby International Business Machines of Armonk, N.Y.; and Linux, afreely-available operating system distributed by Caldera Corp. of SaltLake City, Utah, or any type and/or form of a Unix operating system,among others.

In other embodiments, the computing device 100 may have differentprocessors, operating systems, and input devices consistent with thedevice. For example, in one embodiment the computer 100 is a Treo 180,270, 1060, 600 or 650 smart phone manufactured by Palm, Inc. In thisembodiment, the Treo smart phone is operated under the control of thePalmOS operating system and includes a stylus input device as well as afive-way navigator device. In some embodiments, the computing device mayinclude any type and form of wireless reading device, such as any Kindledevice manufactured by Amazon.com Inc. of Seattle, Wash. Moreover, thecomputing device 100 can be any workstation, desktop computer, laptop ornotebook computer, server, handheld computer, mobile telephone, anyother computer, or other form of computing or telecommunications devicethat is capable of communication and that has sufficient processor powerand memory capacity to perform the operations described herein.

B. Systems and Methods for Providing Augmented Content

FIG. 2 is a block diagram illustrating one example architecture of theaugmentation server 110 as described above with respect to FIG. 1. Asillustrated, the augmentation server 110 includes a handler 36, alocator 42, an analyzer 45, a generator 48, and a reference database 39.The components 36 through 45 may include a software or firmwareinstruction that can be stored within a tangible computer readablemedium (e.g., magnetic disk drive, optical disk or solid state memorysuch as flash memory, or random-access memory) and executed by aprocessor or equivalent electrical circuits, state machines, microcode,or the like.

A source data file 30 (e.g., a web page) resides on a server (e.g., acontent provider 120) on a network 140 (e.g., the Internet). The handler36 retrieves the source data file 30 for augmentation by theaugmentation server 110. The locator 42 examines the retrieved sourcedata file 30 for comparison to data in the reference database 39. In oneembodiment, the locator 42 analyzes content of the source data file 30for keywords, searches corresponding reference data in the referencedatabase 39, and provides the keywords and the corresponding referencedata to the analyzer 45. In an alternate embodiment, rather thananalyzing the source data file 30 for keywords, the locator 42 retrievesa list of keywords from the reference database 39 and enumerates throughthe textual content of the source data file 30 for matches.

The analyzer 45 creates associations between the keywords and thecorresponding reference data found by the locator 42. The generator 48generates an augmented data file 50 by embedding the associationscreated by the analyzer 45 in the source data file 30. The generator 48embeds associations by generating intelligent tags for the keywords, andaugmenting the keywords with the intelligent tags. In one embodiment, anintelligent tag is an alphabetic and/or numeric string that identifiesits associated keywords, and/or reference data, and optionally includesan unique identification number (hereinafter called the association ID).The generator 48 inserts the generated intelligent tags into the sourcedata file 30 to generate the augmented data file 50. Web pages with theintegrated intelligent tags are called augmented web pages. Keywordswith the integrated intelligent tags are called augmented keywords. Thegenerator 48 also stores the identified keywords and/or the associationsin a database for later references.

The resulting augmented data file 50 is returned to the handler 36 toreside at a Universal Resource Locator (URL) address on the network 140(e.g., at the content provider 120 from which the source data file 30 isretrieved). In one embodiment, the handler 36 also receives requests (orsignals) from client computers 130 indicating user interactions with theaugmented data file, and transmits to the client computers 130 relatedadvertisements for display through layered augmentation. Layeredaugmentation is described in detail below with respect to FIGS. 3Athrough 3C. The handler 36 retrieves the activated keywords (e.g., fromthe requests), and determines one or more relevant advertisements froman advertising database (not shown) that matches the keywords and/or theassociated reference data. In one embodiment, rather than transmittingthe related advertisements, the handler 36 transmits addresses (e.g.,URLs) of the relevant advertisements to the requesting client computer130. The client computer 130 resolves the addresses to retrieve theadvertisements.

The reference database 39 stores reference data such as types ofadvertisements (e.g., television advertisements), categories ofadvertisements (e.g., storage rental, home equity loan), and/orinformation about specific advertisements (e.g., associated keywords,format information, price the advertiser is willing to pay, and URL ofthe advertisement). The reference database 39 may be a relationaldatabase or any other type of database that stores the data, such as aflat file. In one embodiment, the reference database 39 is a web enabledreference database supporting remote calls through the Internet to thereference database 39.

The components of the augmentation server 110 can reside on a singlecomputer system or several computer systems located close by or remotelyfrom each other. For example, the analyzer 45 and the generator 48 mayreside on separate web servers, and the reference database 39 may belocated in a dedicated database server. In addition, any of thecomponents or sub-components may be executed in one or multiple computersystems.

Web pages (or web browsers) can provide additional information toviewers. For example, when a user places a mouse over a link label of ahyperlink, a web browser displays the associated destination URL (e.g.,on a status bar of the web browser). As another example, when a userplaces a pointer over a keyword, the web browser may generate a pop-updialog box, and display relevant information (e.g., an explanation ofthe keyword). The process of providing additional information to webpage viewers is called augmentation.

A keyword (or phrase) often has multiple aspects of related information,each having multiple aspects of related information. For example, thekey phrase “digital camera” is related to its history, underlyingtechnology, and available products and services. A specific productrelated to digital camera has related information such as productdescription, customer review, and competing products. Usually only oneaspect of the related information is provided through augmentation dueto limited display space.

Multiple aspects of related information can be arranged and provided toviewers through layered augmentation. Each aspect of related informationcan be assigned to one specific layer of the layered augmentation.Viewers can navigate among the multiple aspects of related informationby accessing the different layers of the layered augmentation withoutleaving the web page. For example, the augmented information can bedisplayed in a multi-layered dialog box. A viewer can navigate amongdifferent layers by selecting associated tabs displayed in the dialogbox in which each tab is associated with a layer. Alternatively, themultiple layers may be stacked in a manner similar to windows inMicrosoft Windows™ Operating System. The stacked layers may be arrangedin a horizontal, vertical, or cascade style, showing a small exposedportion of each layer, such as a title area or a corner area. Navigationbetween each layer in the stack can be through selection of that smallexposed portion of the layer within the stack. The process of providingadditional information (or resources) through multi-layered dialog boxand the multi-layered dialog box are collectively called layeredaugmentation.

FIGS. 3A through 3C are flowcharts collectively illustrating an exampleprocess (or method) for augmenting web pages and providing viewers ofaugmented web pages with related advertisements through layeredaugmentation. In one embodiment, the illustrated method (or either ofits sub-methods 300, 350, and 390) is implemented in a computingenvironment such as the computing environment 100. One or more portionsof the method may be implemented in embodiments of hardware and/orsoftware or combinations thereof.

By way of example, the illustrated method may be embodied throughinstructions for performing the actions described herein and suchinstrumentations can be stored within a tangible computer readablemedium and are executable by a processor. Alternatively (oradditionally), the illustrated method may be implemented in modules likethose in the augmentation server 110 described above with respect toFIG. 2 and/or other entities such as the content providers 120 and/orthe client computers 130. Furthermore, those of skill in the art willrecognize that other embodiments can perform the steps of theillustrated method in different order. Moreover, other embodiments caninclude different and/or additional steps than the ones described here.

FIG. 3A illustrates an example process (or method) 300 for augmentingweb pages. As illustrated in FIG. 3A with reference to components of theaugmentation server 110 in FIG. 2, at an appropriate starting terminus10, the method 300 begins by reading a piece of structured data from asource data file 30 at a block 13 (e.g., through the handler 36). Thesource data file 30 may be one designated by an input uniform resourcelocator (URL) address or by any suitable means to designate a resource.Upon opening the source data file 30, the method 300 may optionallyidentify the type of content on the page with a content identifier suchas a MIME header (e.g., through the locator 42). In one embodiment ofthe invention, the method 300 merely searches for the presence of apiece of reference data (e.g., through the locator 42), either informedby the content identifier or by simply searching an occurrence of apiece of well structured data (e.g., a keyword) within the source datafile. In addition, once the source data file 30 is open, the method 300has its content available for comparison to reference data in thereference database 39. Other methods and examples to read a piece ofstructured data from the source data file are described in U.S.application Ser. No. 12/033,539, filed on Feb. 19, 2008, the content ofwhich is incorporated by reference in its entirety.

At a block 16, the method 300 locates one or multiple pieces ofreference data in the reference database 39 corresponding to the pieceof structured data read in the source data file 30 (e.g., through thelocator 42). In one embodiment, the locator 42 searches for referencedata in the reference database 39 that match the piece of structureddata by making function calls to the reference database 39. In oneembodiment, the structured data are keywords, and the reference dataalso contain keywords.

Keywords are a facile and efficient means of generating layeredaugmentation. In addition to or instead of using keywords, oneembodiment uses a “fuzzy expert” or a neural network analysis of thesource data file 30, such as by a natural language search of the sourcedata file 30 to generate a distinct identifier for the content in thesource data file 30. One advantage of a natural language search is theability to better place content in context making links morecontextually appropriate, for instance, security might relate tosecurity of a physical plant such as security of a residence in onesource data file 30 in one context and security of a website in another.In one embodiment, the method 300 determines a context of the keywordsand/or the source data file 30 based on statistical modeling (e.g.,through the locator 42). For example, a context can be assigned apre-defined set of terms which acts as a fingerprint for the context(hereinafter called context fingerprint). The locator 42 can compare thecontext fingerprints associated with a collection of contexts with theterms within the source data file 30 to determine a percentage match foreach context in the collection. Where a high percentage match isachieved (e.g., exceeding a pre-defined percentage match threshold), thelocator 42 determines that the associated context is the context for thesource data file 30. Alternatively or in conjunction, the locator 42 maydetermine the context associated with the highest percentage match asthe context for the source data file 30. The context can be used tolocate corresponding reference data and/or related resources.

At a block 19, the method 300 generates an association to the piece ofstructured data based upon the located matching reference data (e.g.,through the analyzer 45). In one embodiment, a piece of reference dataincludes an identifier such as a keyword, a context, a uniqueidentification number, and/or associated URL address(es) of intendeddestination resource(s) based upon the occurrence of the correspondingkeywords in the source data file 30. Generating an association means toassociate the piece of structured data located in the source data file30 with the located reference data in the reference database 39. Thegenerated association might optionally include additional identificationcodes such as an association ID. The method 300 then augments theoriginal source data file 30 with the generated association at a block22 to generate an augmented data file 50 (e.g., through the generator48).

In one embodiment, the method 300 expresses the association asintelligent tags (e.g., through the generator 48). The method 300generates intelligent tags for the located keywords and tags thekeywords with the generated intelligent tags. The intelligent tagscontain information about the associated keywords such as the keywordand related context, and information about the associated reference datasuch as IDs that uniquely identify the reference data in the referencedatabase 39. For example, the intelligent tags may contain requirement(or preference) information about advertisements (or other types ofresources) to be associated with the keyword, such as types ofadvertisements and a minimum advertisement fee. In one embodiment, theintelligent tags also format the augmented keywords differently than theother textual content in the augmented web pages. Having generated theaugmented data file 50, the method 300 then terminates at a block 25.

In one embodiment, the augmentation server 110 (or the content providers120) also augments the web pages by including computer code (hereinaftercalled client code) to monitor and report viewers' interactions with theaugmented keywords. The computer code can be in any computer language,such as JavaScript. Additional functions of the client code aredescribed in detail below with respect to FIGS. 3B and 3C.

The augmented data file 50 can be delivered (or transmitted) to clientcomputers 130 for display through a web browser to viewers to providerelated resources through layered augmentation. The delivery of theaugmented data file 50 and the process to provide layered augmentationis described in detail below with respect to FIGS. 3B and 3C. Forpurpose of illustration, the method is described in terms of web pagesaugmented with advertisements, even though the disclosed embodimentsapply to other types of augmented data file and resources.

Referring now to FIG. 3B, a flowchart illustrating an example process(or method) 350 for providing layered augmentation to viewers ofaugmented web pages. As illustrated, the method 350 transmits 355 anaugmented web page to a client computer. For example, a user of theclient computer 130 may enter the URL of an augmented web page (or thecorresponding original web page) in the address bar of a conventionalweb browser (e.g., Microsoft Internet Explorer™, Mozilla Firefox™, orApple Safari™) The web browser of the client computer 130 (hereinaftercalled the client web browser) resolves the URL and transmits a requestfor the web page to a corresponding content provider. Responding to therequest, the content provider transmits 355 the augmented web page tothe client web browser for display. In one embodiment, the client webbrowser displays augmented keywords in a double underline style and/orin a color distinctive from text that is not augmented in the augmentedweb page.

The method 350 receives 360 an intelligent tag request from the clientcomputer 130. As described above with respect to FIG. 3A, the augmentedweb page contains client code that monitors user interactions withaugmented keywords. In one embodiment, if the user moves a pointer(e.g., a pointer controlled by a mouse, navigation button, or touchpad)over (a mouse-over) an augmented keyword (the activated keyword), theclient code (which may be integrated with the web browser, for example,as a plug-in applet) generates an intelligent tag request and transmitsthe request to the augmentation server 110. The request indicates themouse-over user activity to the augmentation server 110. The request maycontain information that uniquely identifies the activated keyword(e.g., an association ID), and/or other information such as theactivated keyword itself.

The method 350 determines 365 advertisements relevant to the activatedkeyword for the received request based on the keyword and/or theassociated reference data. In one embodiment, the augmentation server110 extracts the keyword and/or related context from the request,retrieves the associated reference data from the reference database 39,and determines 365 the relevant advertisements by searching in anadvertisement database using the keyword and/or requirements set forthin the associated reference data (e.g., advertisement category, context,fee requirements, etc.).

In one embodiment, the method 350 determines 365 the advertisements thatmatch the best (e.g., matching the activated keyword and/or satisfiesthe most number of reference requirements) as the relevantadvertisements. In another embodiment, the method 350 determines 365relevant advertisements based on a context of the augmented web pageand/or the activated keyword. For example, for a key phrase “digitalcamera” in an article about digital camera, the method 350 maydetermines the following resources as relevant: a product review of adigital camera in CNET.com, a collection of user reviews at Buy.com, anda selection of similar digital cameras. The context can be determinedwhen the activated keyword is identified in method 300.

In one embodiment, the method 350 determines a sequence for the relatedadvertisements. The top advertisement in the sequence (also called thedefault advertisement or the primary advertisement) is the advertisementbeing displayed on the top layer of the layered augmentation. The lowerranked advertisements (also called secondary advertisements) are madeavailable on lower layers of the layered augmentation. In oneembodiment, the method 350 uses a bidding system to determine relatedadvertisements sequence. For example, for a key phrase “digital camera,”there may be multiple related advertisements (e.g., advertisements fordifferent brands or models of digital cameras), each having a bid (orbudget or cost) for the key phrase. The method 350 may determine asequence of the advertisements based on their bids, the one with thehighest bid ranked the highest and so on.

In another embodiment, the method 350 may determine the sequence ofmultiple advertisements based on factors other than bidding prices. Forexample, the method may consider factors such as relationships among themultiple advertisements (e.g., prioritizing video advertisements overtext ones), prior user interactions with the advertisements (e.g.,prioritizing advertisements with higher interacting rate), and contextsof the augmented keyword (e.g., prioritizing advertisements fromretailers or service providers having branches near a geographicalcontext of the keyword and/or the augmented web page, or geographiclocations of a substantial portion of viewers of the web page).

Further, specific sequences may be set for specific keywords and/orparties (e.g., content providers, advertisers, users). For example, ifthe keyword(s) is a music artist (or band, album) name, the method 350may make available his songs (e.g., playback through an embedded musicplayer) on the top layer and other resources on lower layers. As anotherexample, if the keyword(s) is a location name (e.g., YellowstoneNational Park), the method 350 may make available the relevant map(e.g., MapQuest™ Map) on the top layer. As noted above, the resourcesmade available through the layered augmentation need not to beadvertisements and can be related contents such as related articles,videos, images, music, to name only a few. For example, a contentprovider may specify that the layered augmentations in its web pagesmake available a set of links to its other relevant web pages (e.g.,within the same website) where the keyword(s) being augmented iscross-indexed.

In one embodiment, viewers can set their preferences to determine apreferred sequence for the layered augmentation. For example, a viewermay prefer video advertisements while another may disfavor them (e.g.,due to bandwidth constrains at receiving device). As a result, themethod 350 may place video advertisements higher on a sequence for thefirst viewer, while not consider video advertisements for augmentationfor the second viewer. Viewer preferences can be stored in a databasesuch as the reference database 39 along with other viewer related data(e.g., profile data).

The method 350 transmits 370 the relevant advertisements to the clientcomputer 130 for display. In one embodiment, the method 350 retrievesthe advertisements from an advertisement database, and transmits 370them to the client web browser (or the client computer) for display.Alternatively, the method 350 may transmit references of theadvertisements (e.g., their URLs) to the client web browser forretrieval.

In one embodiment, the method 350 generates computer code (hereinaftercalled the advertisement code) to facilitate user interaction with theadvertisements. Similar to the client code, the advertisement code canbe in any computer language, such as JavaScript. The advertisement codemay display the relevant advertisements in a multi-layered dialog box(or popup box) when the viewer moves a pointer over the activatedkeyword. The method 350 transmits the generated advertisement code alongwith the related advertisements to the client web browser. In oneembodiment, the advertisement code is a part of the client code, and isintegrated in the augmented web page when the page is generated

The client web browser displays 375 the relevant advertisements in alayered dialog box proximate to the activated keywords (or the positionwhere the mouse-over is occurring) as an in-page overlay. In oneembodiment, the client web browser utilizes the advertisement code todisplay the advertisements in a multi-layered dialog box. Theadvertisements are displayed according to their sequence. In oneembodiment, only the top advertisement is displayed and the lower rankedadvertisements are represented by selectable tabs. An example process ofthe operation of the advertisement code and the client code is describedin detail below with respect to FIG. 3C.

Referring now to FIG. 3C, a flowchart illustrating an example process(or method) 390 of the client code and/or the advertisement code. Asillustrated, the method 390 determines whether a pointer is positionedover an augmented keyword (the activated keyword), and if so, sets 392the primary advertisement as the active advertisement, and displays 394the active advertisement in a multi-layered dialog box overlaying theaugmented web page in a position proximate to the activated keyword orthe mouse-over. The multi-layered dialog box also displays multipleselectable (e.g., clickable) tabs representing the lower layers. Theviewer can select a tab to request the multi-layered dialog box todisplay the corresponding layer. If the user selected a tab, the method390 sets 396 the advertisement corresponding to the selected layer asthe active advertisement and displays 394 it in place of the previouslydisplayed advertisement.

The viewer can also interact with the currently displayed advertisementby selecting the advertisement. If the viewer selects the advertisement,the method 390 responds 398 to the user selection based on the nature ofthe user selection and the configuration of the advertisement. Forexample, if the user clicks on the active advertisement, the method 390redirects the web browser to a web page related to the activeadvertisement. Alternatively, if the user drags a scrollbar displayed onthe dialog box, the method displays different portions of the activeadvertisement as the user drags along the scrollbar. In one embodiment,if the viewer moves the pointer away from the activated keyword and/orthe multi-layered dialog box for an extended period of time, the method390 hides the dialog box.

Referring back to FIG. 3B, in one embodiment, rather than displayingmultiple advertisements, the method 350 displays multiple aspects (orportions) of the same advertisement in the multi-layered dialog box. Forexample, the multi-layered dialog box may display an image and briefdescription of a product, and present two tabs, one for user reviews andthe other for playback of a television advertisement of the product. Theviewer may interact with the advertisement through the multi-layereddialog box without having to navigate away from and otherwise leave thecurrent web page the viewer is interacting with in the web browser. Forexample, if the advertisement contains video, the multi-layered dialogbox may overlay the video with video controls (e.g., forward, rewind,play/pause, volume, etc.). The multi-layered dialog box may also providefunctional resources such as web searches, enabling viewers to conductweb searches and/or review search results without leaving the augmentedweb page.

The method 350 tracks 380 the received requests, the advertisementsdisplays, and/or the user's interactions with the advertisements. Theseactivities may be logged in a database (e.g., the reference database 39)or reported to another device or person (e.g., via electronic mail).

The methods described above with respect to FIGS. 3A through 3C areillustrated below in an example together with accompanying screenshotsin FIGS. 4A through 4E. Initially, the augmentation server 110 retrievesa web page 400 for augmentation. The web page 400 may contain textualcontent of any subject. FIG. 4A shows an example of the web page 400 asdisplayed in Microsoft Internet Explorer™ As shown in FIG. 4A, the webpage 400 is retrieved from website www.computing.net and contains aparagraph about computer virus.

The augmentation server 110 reads 13 the web page 400 for keywords. Theaugmentation server 110 identifies the keyword “security” 410 forlayered augmentation. The augmentation server 110 locates 16 a piece ofreference data matching the keyword “security” 410 and determines acontext of computer security for the keyword 410. The piece of referencedata includes an advertisement category for computer security services.The augmentation server 110 generates 19 an association of the keyword“security” 410 and the located piece of reference data.

The augmentation server 110 augments 22 the web page 400 by generatingan intelligent tag encoding the generated association, and integratingthe intelligent tag in an augmented web page 450. The augmentationserver 110 also includes in the augmented web page 450 JavaScript code(client code) that captures user interactions with the augmented keyword410.

A web browser running on a client computer 130 retrieves the augmentedweb page 450 and displays it to a user (e.g., responding to the userentering an URL of the web page 400 or 450 in the address bar of the webbrowser). FIG. 4B illustrates a screenshot of the augmented web page 450as displayed on an Internet Explorer™ web browser after it is retrievedby the browser. It is noted that in FIG. 4B the augmented keyword 410 isdisplayed in a double underline style to distinguish from conventionalhyperlinks that are single underlined.

Subsequently, the user may move a pointer (e.g., controlled by a mouse,stylus, or touchpad) over the double underlined augmented keyword 410(the activated augmented keyword). This user action is also referred toas a mouse-over. Detecting the mouse-over, the embedded JavaScript code(the client code) in the augmented web page 450 (or the web browser)generates an intelligent tag request that uniquely identifies theactivated augmented keyword 410 and/or the related context, andtransmits the request to the augmentation server 110. The augmentationserver 110 receives 360 the request, retrieves stored association of thekeyword 410, and determines 365 relevant advertisements by searching foradvertisements corresponding to the keyword 410 and/or the relatedcontext in an advertising database. In the present example, theaugmentation server 110 determines 365 that an advertisement for Ciscosecurity center is the relevant advertisement associated with theaugmented keyword 410.

The augmentation server 110 determines a sequence of various parts ofthe Cisco advertisement and/or other relevant advertisements. In thepresent example, the augmentation server 110 determines that adescription of the Cisco security center ranks top in the sequence,followed by its customer reviews, and a list of competing services.

The augmentation server 110 transmits 370 the related advertisement(s)back to the web browser for display. The augmentation server 110 alsotransmits JavaScript code (advertisement code) that enables layeredrepresentation of the transmitted advertisements.

The web browser (or the advertisement code) displays 375 the receivedadvertisement(s) as an overlay in a multi-layered dialog box inproximity to the keyword 410 or the location where the mouse-overoccurred. As illustrated in FIG. 4C, the user has moved a mouse pointerover the keyword 410. As a result, the web browser receivesadvertisements related to the keyword “security” 410 and displays themin a multi-layered dialog box 460 proximate to the pointer.

As illustrated, the multi-layered dialog box 460 displays anadvertisement about CISCO security center. On the bottom of themulti-layered dialog box 460 are two tabs labeled “Click to viewcustomer review” and “Click to view alternative services,” respectively.Note that this is consistent with the sequence of the advertisements(and/or advertisement portions) determined by the augmentation server110. The user can navigate the advertisements within the multi-layereddialog box 460 by clicking the labeled tabs. The user can also visit thecorresponding advertiser's web page by clicking the advertisement. Whilethe user navigates within the multi-layered dialog box 460, theaugmented web page 450 remains as the current web page displayed in theclient web browser. The user can quickly resume browsing the rest of theaugmented web page 450.

As illustrated in FIG. 4D, when the user clicks (or mouse-over) the tablabeled “Click to view customer review,” the multi-layered dialog box460 displays customer reviews for Cisco security center. It is notedthat the label on the tab representing customer review changes to “Clickto hide customer review.” The user can click the tab to resume viewingthe previous advertisement for Cisco security center.

As illustrated in FIG. 4E, when the user clicks the Cisco securitycenter advertisement, the advertisement code redirects the client webbrowser to the advertiser's web page, in this case a web page related toCisco security center.

C. Systems and Methods of an Ad Server Platform

Referring now to FIG. 5A, an embodiment of an environment and systemsfor providing a plurality of augmented content and related services. Inbrief overview, an ad server platform 110′ delivers a plurality ofservices, such an in-text services 510, interest ads 512 and relatedcontent 514 services. The ad server platform 110′ may include a contextengine 502, an interested engine 504, a campaign selection engine 506and/or an advert resolution engine. The ad server may include or furtherinclude any embodiments of the augmentation server 110 described herein.

The ad server platform 110′ may comprise any combination of modules,applications, programs, libraries, scripts or any other form ofexecutable instructions executing on one or more servers. The ad serverplatform 110′ may provide services directed to advertisers to reach aplurality of users across a plurality of publisher websites, such ascontent providers 120. The services of the ad server platform 110′ maycombine the precise word targeting with delivery of rich media and videocontent. The ad server platform 110′ may provide services directed topublishers to received additional advertising revenue and real-estatewith adding more clutter on their web-sites. The ad server platformprovides a user controlled environment, allowed the user to viewaugmented content, such as advertising, only when these choose to viamouse interaction over a relevant word of interest—a keyword. As such,an ad impression may be pre-qualified in that a user must choose to viewthe ad by moving their mouse over or clicking on a word or phrase ofinterest. This may be referred to as user-initiation impressions.

The ad server platform may provide in-text advertising services 510.In-text services reads web pages and hooks words and word-phrasesdynamically and in real time. The hooked words may be linked orhyperlinked to augmented content in any manner. In one embodiments, thewords are double underlined but any type of indicator may be used suchas a single underline or an icon. In some embodiments, the code forin-text services is installed by publishers into their sites and doesnot require any additional code, adware or spyware to be downloaded oruploaded by a user. When a user mouses over or clicks on hooked (e.g.,double underlined) word or phrase, the code display a user interfaceoverlay, sometimes referred to as a tooltip, on the web page and nearthe hooked word or phrase.

The ad server platform may provide interest ad services 512. Theinterest ad services identifies words of interest within a web page todeliver advertisements that are related to these words of interest. Theinterest ad service may identify the words on the page to analyze thosewords to determine which words are core or central to that page. Theseset of core word are keywords to identify one or more ad campaignsrelevant to those keywords and the user's interests. This may minimizewasted impressions and deliver and advertising experience that relatesmore directly to the user's interest.

The ad server platform may provide related content services 514. Therelated content services may provide, create or generate an automatedlinking system that conveniently delivers relevant additional contentfrom the same or different publishes in the form of videos, articles andinformation. The related content services may read web pages and hookwords and word-phrases dynamically and in real time. The hooked wordsmay point or navigate the user through content related to the hookedwords available through a website, network or portal. For example, therelated content service may link a word on the page to re-circulate theuser through additional content, such as other web pages, of thepublisher. In some embodiments, the related content service mayautomatically mirror the hyperlink style of a publisher's editoriallinks or already provided hyperlinks. The related content services maygenerate or add an icon, such as search icon, that indicates thataugmented content is returned or available.

In further details, the ad server platform may comprise one or morecontext engines 502. The context engine may comprise any type and formof executable instructions executing on a device, such as a server. Thecontext engine may comprise any functions, logic or operations foranalyzing content of a web page. The context engine may use any type andform of semantics based algorithm to determine the meaning of thekeyword relevant to the content of the page, the user, the web-site, thepublisher and/or the campaign. The context engine may determine theintended structure and meaning of words, phrases, sentences or text inthe content of the page. The context engine may analyze the text in thecontent to determine any characters, text, strings, words, terms and/orphrases, or any combinations thereof, that match or correspond to anycharacters, text, strings, words, terms and/or phrases, or anycombinations thereof of any one or more campaigns. The context enginemay analyze the content of the page for keywords from campaigns targetedat the web-site, publisher or content provider of the page. The contextengine may determine any type of metrics on the content of the web pageand of keywords of targeted campaigns of the web page. The contextengine may use any type and form of algorithm to determine a keywordrelevancy weight such as by location of the keyword, the frequency ofthe keywords and the length of the keyword. For example, for locationweighting, those keywords that appear earlier in the content may beconsidered more relevant than those that appear later. For frequencyrelevancy, the more a keyword is repeated within the content, the morerelevant the keyword may be considered. For length relevancy, the morewords in a keywords the less generic the keyword may be and the morerelevant the keyword may be considered.

The ad server platform may comprise one or more interest engines 504.The interest engine may comprise any type and form of executableinstructions executing on a device, such as a server. The interestengine may comprise any functions, logic or operations for tracking andstoring user information and/or behavior to a behavioral profile. Theinterest engine may track and store the user's location, operatingsystem and/or browser. The interest engine may track a predeterminednumber of keywords a user has seen over a certain time period. Theinterest engine may track a predetermined number of relevant terms auser has viewed over a certain time period. The interest engine maytrack the a predetermined number of searches for which a user clicked asearch result and landed on the content providers web-site or web. Theinterest engine may store the recent search terms and/or recently viewedterms into a behavioral profile for the user. The ad server platform,context engine and/or interest engine may change the weighting ofkeywords in content of a page responsive to any information stored inany behavioral profiles. For example, The ad server platform, contextengine and/or interest engine may use a multiplier to up weight or downweight one or more keywords.

The ad server platform may comprise one or more campaign selectionengines 506. The campaign selection engine may comprise any type andform of executable instructions executing on a device, such as a server.The campaign selection engine may comprise any functions, logic oroperations for selecting or matching a campaign to a set of one or morekeywords identified and/or weights for content of a page. The campaignselection engine may identify and select a campaign from a plurality ofcampaigns. The campaign selection engine may identify and select a firstset of campaigns from a plurality of campaigns that meet a firstthreshold or criteria. From the first set of campaigns, the campaignselection engine may order or rank these campaigns using any type andform of algorithms. In some embodiments, the campaign selection enginemay provide a campaign-level relevance of the keywords. The campaignselection engine may determine a relevance number or weighting for eachcampaign relative to the weighted keywords. In some embodiments, eachcampaign may provide a priority to keywords, web-pages or publishers. Insome embodiments, each campaign may provide a relevance weighting tokeywords, web-pages or publishers. The campaign selection engine mayalso comprise any set of one or more rules or restrictions for eitherchanging the ranking, keeping a campaign or removing the campaign. Basedon applying these rules and/or restrictions, the campaign selectionengine selects from the first set of one or more companies a second setof one or more campaigns to use for augmenting the identified keywordson the web-page.

The ad server platform may comprise one or more advert resolutionengines 508. The advert resolution engine may comprise any type and formof executable instructions executing on a device, such as a server. Theadvert resolution engine may comprise any functions, logic or operationsfor resolving the advertisement to use for a hook. For eachadvertisement, the advert resolution engine may determine whether theadvertisement is a backfill or to be obtained from a backfill network.If the advertisement is backfill, the advert resolution engine calls orcommunicates with the backfill provider's servers. For example, theadvert resolution engine may include one or more handlers designed andconstructed to communicate with a particular backfill provider. When anadvertisement is received from the backfill provider or when theadvertisement if not coming from a backfill, the advert resolutionengine may perform any type and form of filtering on the advertisement,such as for making sure the ad meets any rules or restrictions forcontent. The advert resolution engine includes a placer for selecting aninstance of a keyword to hook with the advertisement. When the advertresolution engine has checked for backfill, filters the advertisementand selected an instance to hook for all the intended advertisements,the advert resolution engine may hook the keywords. The advertresolution engine may perform these operations for content other thanadvertisements, such as other types of augmented content.

Referring now to FIGS. 5B through 5H, diagrams of embodiments of thefunctionality and operations of the ad server platform are depicted.FIG. 5b depicts an embodiment of high level overview of the process fromthe client perspective. FIG. 5C depicts an embodiment of contextualtargeting. FIG. 5D depicts an embodiment of keyword relevancy weighting.FIG. 5E depicts an embodiment of behavioral targeting. FIG. 5F depicts afurther embodiment of behavioral targeting. FIG. 5G depicts anembodiment of further weighting based on behavioral targeting. FIG. 5Hdepicts and embodiment of campaign selection.

Referring to FIG. 5A, at step 502, a user on a client 120 requests apage from a publisher, such as a web page of a content provider 120. Atstep 504, the client receives the page and the browser loads the page.The user may start browsing the web page. At step 506, an agent on thepage, such as a script starts an analysis in the background. The agentmay be triggered upon loading of the web page or start the analysis uponreceipt and/or loading of the web page. The agent may communicate withthe ad server platform to perform any of the services of in-textadvertising, related content or interest ads. For example, the agent maysend content from the page for the ad server platform to analyze. In thebackground of the user viewing or browsing the web page, the ad serverplatform may analyze the page, find relevant campaigns filter campaignsand generate a response to the agent for hooking the keywords andidentifying or delivering the augmented content. The ad server platformmay not analyze pages based on filtering certain URLs. The ad serverplatform may analyze the content received from the agent, perform any ofthe services described herein and send the keywords to hook and thecorresponding augmented content, such as advertisements from a campaign.At step 508, the analysis is completed and the user sees links tokeywords, such as double underlined keywords. As described herein, theuser may mouse over or click the hooked keyword and have the augmentedcontent displayed.

Referring now to FIG. 5C, an embodiment of contextual targeting isdepicted. This contextual targeted may be performed by the ad serverplatform and performed in the background while the page is being loadedand browsed/viewed by the user. The ad server platform receives pagecontent from the client, such as via an agent. The ad server platformanalyzes the page to match keywords to campaigns targeted to theweb-site, page or URL. In some embodiments, the ad server platform findsall campaigns targeted to this site, finds all keywords in thosecampaigns and forms or generates a site keyword list for this site. Thead server platform may match the keywords from the site keyword list tokeywords in the content from the page. The ad server platform may assigneach matching keyword a relevancy weight.

Referring now to FIG. 5D, an embodiment of assigning a relevancy weightto each keyword to provide contextual targeting is depicted. The adserver platform may provide a relevancy weight to each keyword of thesite keyword list matching content of the web page. The ad serverplatform may use any type and form of metrics or combinations of metricsto determine a relevancy weight. In some embodiments, the ad serverplatform uses a location, frequency and/or length metric to assign arelevancy weight to the matching keyword. The location relevancy weightmay comprise an indicator or multiplier to those keywords that appearnear the beginning or top of the web page relevant to those keywordsthat appear near the end of bottom of the web page. The frequencyrelevancy weight may comprise an indicator or multiplier to thosekeywords that appear more times on the same page or content than otherkeywords. The length relevancy weight may comprise an indicator ormultiplier to those keywords that have more words in the keywords thansingle keyword or keywords with less words.

Each type of metric relevancy weight may be weighted the same ordifferently. Each metric relevancy weight may have it owns multiplier orfactor that scales the weight for the keyword up or down according tothe relevancy. The keyword may be up weighted and/or down weighted oneor more times by each of the metric relevancy weights. A keywordrelevancy weight may be up weighted by one metric relevancy weight whiledownloaded by another relevancy weight. For example, a keyword may berepeated several times and be up weighted or have a high multiplierbased on the frequency relevancy weight while only found and repeatednear the end of the page for a down weighting or low multiplier from thelocation relevancy weight. In some embodiments, a keyword may get a lowrelevancy weighting from each of the metric relevancy weightings. Insome embodiments, a keyword may get a high relevancy weighting from eachof the metric relevancy weightings. In some embodiments, a keyword mayget a combination of low and high relevancy weightings from differentrelevancy weightings.

Referring now to FIG. 5E, an embodiment of applying behavioral targetingis depicted. The ad server platform may identify, track and storeformation about a user's behavior in a behavioral profile. Thebehavioral profile may comprise a profile for one user or a plurality ofusers. Each of the user's profile data may be identified, tracked andmanaged via unique user identifiers. In some embodiments, the ad serverplatform may track a predetermined number of search terms, such as 5,that the user last searched. In some embodiments, the ad server platformmay track a predetermined number of search terms for each search engine,such as the Google search engine, Microsoft Bing search engine, Yahoosearch or Ask search engine. In some embodiments, the ad server platformmay track a predetermined number of search terms for each search engineacross a combination of search engines. In some embodiments, the adserver platform tracks and stores those search terms for which the userclicked a search result. In some embodiments, the ad server platformtracks and stores those search terms for which the user clicked a searchresult. In some embodiments, the ad server platform tracks and storesthose search terms for which the user clicked a search result and landedon a web page of a predetermined content provider or publisher.

Referring to FIG. 5F, a further embodiment of behavioral targeting isdepicted. The ad server platform may track and store in the behavioralprofile of a user a history of terms the user has seen over apredetermined time period. In some embodiments, the ad server platformtracks terms has a user has viewed on a web page. In some embodiments,the ad server platform tracks terms the user has selected from a searchor interacted with during the user's viewing history. In someembodiments, the ad server platform tracks terms of one or more searchresults from which the user has clicked through. In some embodiments,the ad server platform tracks viewed terms over a predetermined timeperiod. In some embodiments, the ad server platform tracks viewed termsover a start of a behavioral profile of the user to current time.

The ad server platform may use any of the search terms and/or viewedterms from the behavioral profile to make a change to the relevancyweightings of the matching keywords. Those matching keywords that theuse has searched or viewed previously will have their relevancyweightings increased or up weighted via a behavioral targetingmultiplier. In some embodiments, the ad server platform may use acombination of recently searched and viewed terms to apply a multiplierto each matching keyword. The ad server platform may use any temporalthreshold to determine which search terms and/or viewed terms to use fordetermining a multiplier to the relevancy weightings of the matchingkeywords. The ad platform may apply higher behavioral targetingmultipliers to those keywords that were recently viewed and/or recentlysearch within a predetermined time history. The ad platform may apply noor lower behavioral targeting multipliers to those keywords that werenot recently viewed and/or not recently search within the predeterminedtime history.

As a result of using behavioral profile data and behavioral targetingmultipliers, as depicted in FIG. 5G, the ad server platform modifies therelevancy of the matching keywords from the site keyword list. Thematching keywords are assigned a first relevancy weighting from thecontextual targeting and are modified or changed to a second relevancyweighting from the behavioral targeting. In some embodiments, the adserver platform maintains both the contextual targeting relevancyweightings and the behavioral targeting relevancy weighting for eachmatching keyword. In some embodiments, the ad server platform maintainsa single relevancy weighting keyword comprising the behavioral targetingmultipliers (up weighting or down weighting) to the relevancy weightingapplied by the contextual targeting.

Referring to FIG. 5H, an embodiment of campaign selection is depicted.In some embodiments, the results of contextual and/or behavioraltargeting are used as input to the campaign selection engine. The adserver platform may use the relevancy weightings of the matchingkeywords from the site keyword list to determine which campaigns may beapplicable to these matching keywords. Those campaigns not havingkeywords corresponding to any of the matching keywords may be droppedfrom consideration. In some embodiments, those campaigns not having anumber of keywords corresponding to the matching keywords within apredetermined threshold may be dropped from consideration. In someembodiments, those campaigns having one or more keywords correspondingto a predetermined number of the top relevancy weighted keywords may beidentified for consideration.

The ad server platform may order the list of campaigns underconsideration using any type and form of algorithm. For example, the adserver platform may rank the campaigns based on having matching keywordswith the highest combined relevancy weightings. the ad server platformmay rank the campaigns based on having the highest number of matchingkeywords. The ad server platform may rank the campaigns based on acombination of the highest combined relevancy weightings and the highestnumber of matching keywords. The ad server platform may also ordercampaigns based on any type of priorities assigned to the campaigns.Some campaigns may have a high order of priority to deliver or servethan other campaigns.

The ad server platform may selected the campaigns to deliver from theordered or ranked list of campaigns. The ad server platform may furtherrestrict the selection based on any rules or policies of the ad serverplatform, the publisher or the campaign. For example, the campaign orpublisher may have rules restricting the serving of a campaign directedto certain users, times of days, locations, browsers, or content. Oncethe selection of the one or more campaigns is made, the ad serverplatform generates a list of campaign keywords to hook and transmitsthese keywords to the agent of the client. The ad server platform mayprovide to the agent information on the publisher, campaign,tooltip/user interface overlay and/or augmented content with orcorresponding to the keyword.

Referring now to FIGS. 5I, 5J and 5K, embodiments of systems and methodsfor delivering augmented content are depicted. FIG. 5I depicts anembodiment of a system for analyzing content of a page to determinekeywords to augment for one or more campaigns. FIG. 5J depicts anembodiment of augmented content delivered to a web page of a client.FIG. 5k depicts embodiments of a method for analyzing and hookingkeywords on a web page of a client.

In brief overview of FIG. SI, an embodiment of a system for augmentedkeywords on a web page is depicted. A client 130 communicates with oneor more content providers 120, such as publishers, via network(s) 140.The client 120 may include a browser that receives, loads and displaycontent in the form of web page or pages 517 from the one or morecontents providers. The client 130 also communicates with theaugmentation server or ad server 110′. The page 517 being loaded orloaded by the browser comprises an agent 520. The agent 520 maycommunication page content 519 to the server 110, 110′ for analysis andreceived from the server 110, 110′ keywords, corresponding campaignsand/or augmented content. The keyword matcher 522 of server 110, 110′may perform keyword matching, such as using site keyword list, on thepage content 519 received from the agent 520. The keyword ranker 524ranks the keywords to provide ranked keywords 528. The campaignselection engine 506 selects campaigns 526 based on the ranked keywords528.

In further detail, the browser 515 may comprise any type and form ofexecutable instructions for accessing information resources via anetwork 140 such as the Internet. The browser may include any user agentor software for retrieving, presenting, accessing and/or traversinginformation resources or documents on the world wide web or a network140. The browser may include any functionality for loading, running,processing and/or displaying on a computer screen information written inHTML, XML, JavaScript, java, flash or any other language or a scriptused for web pages. Browser may include any functionality for displayingany type and form of content or features presented by web page ortransmitted content provider 120. Browser may include any functionalityfor enabling a user to interact or interface with a web page. Browsermay provide functionality for displaying advertisement informationwithin a web page presented or displayed on a computer screen of clientcomputer 130. In some embodiments, a browser is any version of InternetExplorer web browser manufactured by Microsoft Corp. In otherembodiments, the browser is any version of the Chrome web browsermanufactured by Google Inc. In other embodiments, the browser is anyversion of Firefox web browser distributed by the Mozilla Foundation. Infurther embodiments, the browser is any version of the Opera browser byOpera Software ASA.

The page 517 may include any type and form of content processable by anyembodiment of the browser 515. The page may be stored on any number ofservers, such as content providers 120 and may be accessed and/or loadedby any web browser, such as browser 515. The page may be a web page. Thepage be a document, The page may be a file. The page may any resourceaccessible via a network or a world wide web by a networked device, suchas a client computer 130. The page may be identified by a URL. The pagemay include content from a URL. The page may include any type and formof executable instructions, such as scripts, AJAX. The page may includeany type and form of graphics and/or text. The page may include any typeand form of media, such as video or audio media. The page may includecontent having text, words, keywords and links or hyperlinks to otherweb pages or web sites.

Page 517 may include any document which may be accessed, loaded, viewedand/or edited by a browser 620 and displayed on a computer screen. Page517 may include any content which may be presented via hypertext markuplanguage, extensible markup language, java, JavaScript or any otherlanguage or script for preparing web pages. Web page may include anytype and form of components for adding animation or interactivity to aweb page, such as Adobe Flash by Adobe Systems Inc. The page may includefunctionality for displaying advertisements, such as advertisements fromenterprises, government, companies and firms. A web page may include anynumber of ad spaces providing space or arrangement within web page fordisplaying advertisement.

The client, browser or page may include an agent 520. The agent mayinclude any type and form of executable instructions executable by thebrowser and/or client. In some embodiments, the agent comprises ascript, such as JavaScript or JSON (JavaScript Notation). In someembodiments, the agent may comprise any type and form of plug-in, add-onor component to or of browser 515. In some embodiments, the agent maycomprise any type of application, program, service, process or taskexecutable by the client.

The agent 520 may be included in the page 517 when transmitted by thecontent provider. In some embodiments, the page includes the agent inscript form as part of the content of the page. In some embodiments, thepage includes a URL to the script, such as URL pointing to oridentifying a resource or script of the servers 110, 110′. In someembodiments, the agent is loaded by the browser. In some embodiments,the agent is executed by the browser upon retrieval and/or loading ofthe page 517. In some embodiments, the page includes instructions to thebrowser or client to obtain and load or install the agent.

The agent 520 may include any logic, function or operations to interfaceto or communicate with any portion of the augmentation server 110 or adserver platform 110. The agent may include any logic, function oroperations to provide any of the services or functionality of in-text510, interest ads 512 and/or related content 514. The agent may includeany logic, function or operations to identify, collect and transmitcontent from the page to the server 110/110′. The agent may identify,collect and transmit any and/or all text in content of the page. Theagent may identify, collect and transmit any and/or all text from anypages or URLs referred to by the page. The agent may transmit anyembodiments of this page content 519 to the server 110, 110′.

The agent may comprise any logic, function or operations to receivekeywords, campaigns and/or augmented content from the server 110, 110′.The agent may comprise any logic, function or operations to hookkeywords identified in the page content. The agent may “hook” keywordsby modifying the keyword in the page content to have an indicator, suchas double underlined or an icon. Hooking a keyword refers to making akeyword on the page have a predetermined visual appearance to indicatethat interactivity would or may occur by the user interacting with thekeyword and instrumenting the page or keyword to perform theinteractivity responsive to the user interaction. The indicator mayprovide a visual indication that the keyword in the text is linked orhyperlinked. In some embodiment, the agent may link or hyperlink thekeyword. The agent may hook the keyword to include a function, script orexecutable instruction to take an action responsive to a mouse over,mouse click or other user interaction. The agent may hook the keyword todisplay a user interface overlay or tooltip such as depicted in FIG. 5J.The agent may hook the keyword to display a related advertisement oraugmented content on the page as also depicted in FIG. 5J.

The keyword matcher 522 of the server 110, 110′ may comprise any typeand form of executable instructions executable on a device. The keywordmatcher may comprise any logic, function or operations to identifymatches between one data set and another data set. In some embodiments,the keyword matcher may identify matches between keywords of campaignswith page content. In some embodiments, the keyword matcher may identifywhole or complete matches. In some embodiments, the keyword matcher mayidentify partial or incomplete matches. In some embodiments, the keywordmatcher may identify partial or incomplete matches within apredetermined threshold. In some embodiments, the keyword matcher mayidentify both complete and incomplete matches. The keyword matcher mayperform any of the keyword operations described in connection with FIGS.5A through 5F. The keyword matcher may be included as part of thecontext engine, interest engine or campaign selection engine of the adserver platform.

The keyword ranker 522 of the server 110, 110′ may comprise any type andform of executable instructions executable on a device. The keywordranker may comprise any logic, function or operations to rank a set ofdata responsive to one or more criteria. The keyword ranker may compriseany logic, function or operations to rank keywords matched to pagecontent. The keyword ranker may comprise any logic, function oroperations to provide a weighting to a keyword based on any metrics ofthe keyword, such as location, frequency, and length. The keyword rankermay comprise any logic, function or operations to provide a weighting toa keyword based on relevancy to the site. The keyword ranker maycomprise any logic, function or operations to provide a weighting to akeyword based on relevancy to a publisher or content provider. Thekeyword ranker may comprise any logic, function or operations to providea weighting to a keyword based on relevancy to a campaign. The keywordranker may comprise any logic, function or operations to provide aweighting to a keyword based on relevancy to a user or behavioralprofile. The keyword ranker may be included as part of the contextengine, interest engine or campaign selection engine of the ad serverplatform.

The keyword ranker may perform any of the keyword ranking and/orweighting operations described in connection with FIGS. 5A through 5F.An output or result of the keyword ranker may be ranked keywords 528.The ranked keywords may include any type of object, data structure ordata stored in memory or to storage. The ranked keywords may includecontextually targeted ranked keywords as described in connection withFIGS. 5A through 5F. The ranked keywords may include behavioraltargeting ranked keywords as described in connection with FIGS. 5Athrough 5F. The ranked keywords may include any combination ofcontextually targeted ranked keywords and behavioral targeting rankedkeywords. The ranked keywords may be site specific. The ranked keywordsmay be campaign specific. The ranked keywords may be publisher specific.The ranked keywords may be based on any combination of site, campaignand/or publisher.

The campaign selection engine 506 may interface or communicate with anyof the keyword matcher, the keyword ranker and/or ranked keywords. Thecampaign selection engine 506 may access, read or process campaigns 526.The campaigns 526 may be stored in any type and form of database or filesystem. The campaigns 526 may include information identifying keywordsfor the campaigns and augmented content to deliver for those keywords.The campaigns 526 may include any type and form of content, URLS,scripts, video, audio, advertisements, media, text, graphics, data,information etc. to provide as augmented content with the keywords. Thecampaigns 526 may include any type and form of URLs, advertisements,media, text, graphics, etc. to provide as augmented content with thekeywords. The campaigns may identify or provide any desired userinterface overlay/tooltip or content therein. The campaigns may beorganized by publisher. Each publisher may have a plurality ofcampaigns.

The campaign selection engine selects the campaign to deliver with thepage based on analysis of the page content from the keyword matcher,keyword ranker and ranked keywords. The campaign selection engine maycomprise any type and form of logic, functions or operations to identifyand select one or more campaigns from a list of contender or candidatecampaigns based on any criteria or algorithm. The campaign selectionengine may select those campaigns that best match or correspond to thetop ranked keywords. The campaign selection engine may select thosecampaigns that match or correspond to a predetermined number of rankedkeywords. The campaign selection engine may select those campaigns thatmatch or correspond to a predetermined set of ranked keywords. Thecampaign selection engine may select those campaigns that match orcorrespond to the ranked keywords in accordance with a priority assignedto the campaigns or publisher. The campaign selection engine may excludeor include campaigns based on the logic or criteria of any rules orfilters.

Responsive to the campaign selection engine, the server 110, 110′ maytransmit to the agent identification of one or more keywords to augmenton the page and corresponding campaigns for those keywords (see 530).The server may transmit to the agent any script, data or information toprovide or facilitate hooking of the keywords on the page and displayingthe campaign responsive to user interaction with the keyword. The servermay transmit to the agent the indicator, or identification of theindicator) to use for a hooked keyword. The server may transmit to theagent the type and form of user interface overlay to display when a usermouse over or mouse click occurs for the keyword. The server maytransmit to the agent a reference to or identification of any ofaugmented content to display when a mouse over or mouse click occurs forthe keyword. The server may transmit to the agent the augmented content,such as the advertisement, to display when a mouse over or mouse clickoccurs for the keyword.

The agent may receive the information 530 from the server and modify thepage or content of the agent to perform the hooking of the keywords, toinstrument the hooked keywords, and/or deliver the campaign responsiveto the keyword. The agent may perform any of the agent's logic,functions or operations while the web page is being loaded. The agentmay perform any of the agent's logic, functions or operations while theuser views or browsers the web page. The agent may perform any of theagent's logic, functions or operations in the background to the userviewing or browsing the page.

Referring now to FIG. 5J, embodiments of augmented content deliveredwith a corresponding keyword is depicted. In brief overview, the page517 may include an augmented keyword in the text of the content (e.g.,see double underlined “Augmented Keyword” next to “in text of content”).When a user interacts with the augmented keywords, a user interfaceoverlay 550, also referred to as tooltip, may be displayed. This userinterface overlay may deliver or provide the campaign corresponding tothe keyword. Responsive to user interaction with the keyword, the agentmay display related advertisements 554′, such as via a banner ad, oraugmented content 556′. The related advertisements 554′ and/or augmentedcontent 556′ may be displayed in connection with the tooltip, withoutthe tooltip or instead of the tooltip.

Any of the content on page 517 may include any embodiments of theadvertisements and/or augmented contented provided and discussed abovein connections with FIGS. 1 through 4E. The tooltip may be part of amulti-layered augmentation content or advertisement unit. The tooltipmay provide any one or more URLs to access related websites.

The user interface overlay 550 referred to as a tooltip may include anytype and form of web beacon 545. In some embodiments, the tooltip 550may include a plurality of web beacons. The beacon may be used fortracking a user's usage and/or interactions with the tooltip. The beaconmay identify or track a length of time of any user interaction with thetooltip and/or augments keyword or inline text. The beacon may identifya URL or tracking system to register or send communications regardingthe user interaction. In some embodiments, a web beacon may be designedand constructed for a predetermined tracking system.

A web beacon may be an object that is embedded in the tooltip that isnot visible to the user. Sometimes beacons are referred to as webbeacons, web bugs, tracking bugs, pixel tags or clear gifs. Web beaconsmay be used to understand the behavior of users who frequent designatedweb pages. A web beacon permits a third party to track and/or collectvarious types of information. For instance, a web beacon may be used todetermine who is reading a webpage, when the webpage is read, how longthe page was viewed, the type of browser used to view the webpage,information from previously set cookies, and from what computer thewebpage is accessed.

The tooltip may be incorporated, integrated or presented with any one ormore of related advertisements 554, related video 558 and/or real timestatistics 562. The tooltip 550 may include an URL 560 to any web pageor resource, such as additional content, search results, or media.Although the tooltip 550 is illustrated each with a relatedadvertisement, related video and related statistics, the tooltip 550 maybe presented with one of these related content or a plurality of theserelated contents. Although this related content is illustrated in alocation, size and position in relation to the tooltip, the relatedadvertisements, related video, and/or real time statistics may bearranged, organized or presented in any manner.

The tooltip may also include one or URLs 560, such as a hypertexted URLor link to any other page or content. In some embodiments, thehypertexted link 560 comprises a URL of a landing page of a web site. Insome embodiments, the hypertexted link 560 comprises a URL of a web pageproviding search results directly from the search engine. In anotherembodiment, the hypertexted link 560 provides a link to a recommend ormost relevant search result. In other embodiments, the hypertexted link560 provides a link to run the search query on a second search engine.The hypertexted link 560 may bring the user to a landing page of thesearch results of the second search engine.

The related advertisements 554 may include any type and form ofadvertisement related to the augmented content or inline text orotherwise related to the keyword. In some embodiments, the relatedadvertisements are advertisements provided as described in connectionwith any of the embodiments of the FIGS. 1A-4E. In some embodiments, therelated advertisements are advertisements provided by a search engine,such as in relation to and based on the search query. In otherembodiments, the related advertisements are provided by any type andform of ad network via the server 110, 110′ and/or search engine.

The related video 558 may include any type and form of video mediarelated to the augmented content or inline text or otherwise related tothe keyword. In some embodiments, the related videos are advertisementsprovided as augmented content as described in connection with any of theembodiments of the FIGS. 1A-4E. In some embodiments, the related videosare videos provided by a search engine, such as in relation to and basedon a search query. In other embodiments, the related videos are providedby any type and form of video service, such as YouTube.com oriTunes.com. In another embodiment, the related videos are videosavailable to the user via a user accessible storage or video managementsystem.

The real time statistics 562 may include any type and form of statisticsrelated to the augmented content or inline text or otherwise related tothe keyword. In some embodiments, the real time statistics 562 may beany statistics related to the person or entity of the search. Forexample, if the augmented keyword is a sports team, the real timestatistics may include current or recent game scores and/or standings ofthe team. In another example, if the augmented keyword is related to theweather, the real time statistics may include a current weatherforecast. In one example, if the augmented keyword is related to amusician, the real time statistics may include statistics on musicdownloads, album sales and top music chart location.

Referring now to FIG. 5K, embodiments of a method for augmented contentof a keyword of a web page being loaded into a browser is depicted. Inbrief overview, at step 580, an agent of the browser to server 110, 110′upon or while loading a web page. At step 582, the server analyzes thepage data and reduced the page data set. At step 584, the serverperforms content filtering on page and keywords to match tocorresponding campaigns. At step 586, the server performs ranking ofkeywords. At step 588, the server matches the ranked keywords tokeywords of each campaign. At step 590, the server selects top matchingkeywords and their campaigns. At step 592, the server sends to the agentthe selected keywords and their campaigns and may provide the agenttooltips and/or augmented content. At step 594, the agent hooks thekeywords identified by the server. At step 596, the agent detects userinteraction such as mouse over or clock of keywords and displaysaugmented content, such as a tooltip.

In further details, at step 580, the agent may be executed by thebrowser upon or while loading the web page. The browser may retrieve theagent via a URL identified by the page. In some embodiments, the pagetransmitted by the server includes the agent. The agent may comprisescript places or arranged at or near the top page to be executed by thebrowser. In some embodiments, the agent may be triggered by any loadevents or APIs of the browser. The agent may be executed prior tocontent of the web page being loaded or displayed. The agent may beexecuted prior to the retrieval of any URLS of the page. The agent maybe executed prior to completion of loading of the web page by thebrowser.

The agent may identify, gather and aggregate data from the page. Theagent many identify all text portions of the web page. The agent manyidentify those elements of the page that contain text. The agent mayidentify text from a predetermined set of elements of the page. Theagent may identify text from HTML, XML or other page languages. Theagent may identify text from the body of an HTTP portion of the page.The agent may perform text recognition on any portion of the page or anyelement of the page. The agent may identify text from any URLS or othercontent referred to or loaded by the page. The agent may identify anyother date of the page, including headers. For example, the agent mayidentify the browser type, the user, location, IP addresses from thecontent of the page or from any of the network packets used forcommunicating the page. In some embodiments, the agent performs analysisand identified metrics for the page date, such as text location,frequency, length and repeatability.

The agent may gather the identified page data, text or otherwise, and/orany page metrics and transmits the page data and/or page metrics to theserver 110, 110′. In some embodiments, the agent transmits the page datatogether in one transaction with the server. In some embodiments, theagent transmits portions of page data in a series of transactions withthe server. In some embodiments, the agent transmits the page data usingany type and form of protocol. In some embodiments, the agent transmitsthe page data as a background process to the browser loading the page orthe user browsing the page. In some embodiments, the agent transmits thepage data while the browser is loading the page.

At step 582, the server analyzes the page data and reduces the page datato a working set of page data to continue analysis. The server mayremove a predetermined set of commons words, such as a, and, the, fromthe page data. In some embodiments, the server may filer a predeterminedset of words, phrases, terms or characters according to any filters,rules or policies. In some embodiments, the server may identify andcorrect any typos or other inadvertences with the page data. In someembodiments, the server may perform any type and form of metrics on thepage data. In some embodiments, the server may identify location,frequency, repeatability of text on the page. In some embodiments, theserver may identify location, frequency, repeatability of text on thepage data relative to other text on the page.

At step 584, the server analyzes the text from the working set of pagedata to determine if there is any type and form of matching to anycampaigns. In some embodiments, the server performs any type and form ofsemantic matching to match keywords on the page semantically toconcepts, meanings, categories, subject matter and/or keywords ofcampaigns. In some embodiments, the server performs a phonetic matchbetween keywords on the page to keywords of campaigns. In someembodiments, the server performs a spelling match between keywords onthe page to keywords of campaigns. In some embodiments, the serverperforms content filtering on text, words, and portions of contentaround the keywords on the page to determine a context for the keywordsand match that context to campaigns. In some embodiments, the serverperforms content filtering on the page data to determine a category, asub-category, a topic, subject matter or other information indicator andmatches the same to any one or more campaigns.

In some embodiments, the server may generate a set of keyword fromcampaigns targeted towards the site of the page or publisher of thepage. The server may generate a site keyword list. The keyword matcherof the server may match keywords from a keyword list, such as the sitekeyword list, against text of the page data to identify keywords in thepage data. In some embodiments, the keyword matcher identifies multipleword phrase matches. In some embodiments, the keyword matcher identifiespartial word phrases. In some embodiments, the keyword matcheridentifies a number of times or the frequency for which a keyword isfound in the page data. In some embodiments, the keyword matcheridentifies the location of the keyword in the page data, and in furtherembodiments, relative to other keywords or boundaries of the page, suchas top or bottom.

At step 586, the server performs any type and form ranking of keywordsof the page data identified by the keyword matcher. The keyword rankermay rank all of the matching keywords. The keyword rank may rank apredetermined number of keywords. The keyword ranker may rank thekeywords according to any one or more metrics. The keyword ranker mayrank the keywords according to any one or more criteria. The keywordranker may rank each keywords by applying a weight to a value assignedto the keyword. The keyword ranker may provide any multipliers to avalued or weighted value of the keyword to increase or decrease theranking of the keyword. The keyword ranker may rank the keywords on anytype and form of scale, which may be absolute or relative.

At step 588, the server matches the ranked keywords to keywords of oneor more campaigns. The keyword matcher, ranker or campaign selectionengine may compare the list of ranked keywords, or any portions thereof,to a list of keywords of one or more campaigns. In some embodiments, theserver identifies those campaigns that are contenders to be a selectedfor the campaign for this page. In some embodiments, the serveridentifies those campaigns associated with or assigned to be a campaigntargeted to site or publisher of the page. The server may match theranked keywords against the identified campaigns. In some embodiments,the server may match the ranked keywords against all campaigns. In someembodiments, the server may change the ranking of the keywords based onresults of matching the keywords from the campaigns.

At step 590, the campaign selection engine selects a predeterminednumber of matching keywords and their campaigns. In some embodiments,the campaign selection engine selects a predetermined number of topmatching keywords and their campaigns. In some embodiments, the campaignselection engine selects a number of top matching keywords and theircampaigns corresponding to a number of matching keywords on the page.For example, if there are five unique keywords on the page and eachidentified by a campaign, the server may select five campaigns. In someembodiments, the campaign selection engine may select one campaign for aplurality of corresponding matching keywords on the page.

In some embodiments, the campaign selection engine may filter outcampaigns based on any type and form of filter rules. The campaignselection engine may rank campaigns according to any type and form ofranking. For example, the campaign selection engine may prioritizecampaigns according to clients, volume, importance, spend, budget,historical campaign performance or any other desired criteria. Thecampaign selection engine may compare the ranked keywords to the rankedcampaigns. The campaign selection engine may select any of the higher orhighest ranked campaigns matching any of the higher or highest rankedkeywords.

At step 592, the server sends to the agent the selected keywords andtheir campaigns. Responsive to the campaign selection engine, the servermay send to the agent the list of keywords to augment or hook and theircorresponding campaigns. In some embodiments, the server sends apredetermined number of additional keywords to augment or hook in casethe agent cannot hook or augment any one or more keywords in the list ofkeywords. In some embodiments, the server sends an ordered list ofkeywords. The ordered list of keywords may identify a priority ofaugmentation or hooking to the agent.

The server may send any type and form of information to the agent on howto augment or hook a keyword, what type of augmentation to use andidentifying the form and content of the augmentation. In someembodiments, the server sends to the agent publisher and campaignidentifiers for the agent to obtain or identify the appropriate campaignfor a keyword. In some embodiments, the server sends the agent anindication of the visual indicator to use for the hooked keyword (e.g.,double underlined). In some embodiments, the server sends the agent theexecutable instructions by which the keyword is hooked or for replacingthe text of the keyword with a hooked keyword.

In some embodiments, the server sends instructions for content,construction and/or display of the tooltip. In some embodiments, theserver sends a set of executable instructions providing the tooltipand/or any portion thereof. In some embodiments, the server sends a setof executable instructions providing the augmented content and/or anyportion thereof. In some embodiments, the server sends a set ofexecutable instructions providing any embodiments of the augmentedcontent, advertisements and/or tooltip of FIG. 5I. In some embodiments,the server sends content for the tooltip to provide the campaignassigned to the keyword. In some embodiments, the server sends one ormore URLs referencing a campaign to be delivered via a web-site. Forexample, in some embodiments, the server sends one or more URLS toadvertisements to be delivered for the campaign. In some embodiments,the server sends one or more scripts to agent to provide any of theabove embodiments.

At step 594, the agent hooks the identified keywords on the page Theagent may replace each keyword in the identified list of keywords fromthe server with instructions or code to hook the keyword. The agent mayhave hyperlink or link the keyword to a set of code or executableinstructions to display the tooltip, augmented content or anyembodiments of FIG. 5J. The agent may use modify the keyword to provideany type and form of visual indicator (e.g., double underlined or icon)to indicate the keyword is user interactive, hyperlinked or linked orotherwise hooked. The agent may modify the page to change the text to aliked or hooked text and to link or associated any forms of augmentedcontent of FIG. 5J to be displayed or provided via user interaction withthe hooked text. The agent may modify the page or instrument the keywordto detect when a user interacts with the keyword in a certain way. Theagent may include one or more event based functions that are triggedresponsive to predetermined user interactions. For example, the agentmay modify the page or instrument the keyword to detect when a usermouses over the keyword, clicks on the keyword, right clicks on thekeyword or left clicks on the keyword or otherwise selects anypredetermined set of keystrokes or sequence of keystrokes.

At step 596, the agent detects user interaction such as mouse over orclick of a keyword on the page and displays augmented content, such as atooltip. The agent may detect when a mouse is over the keyword at anytime. The agent may detect when a user has the cursor over the keyword.The agent may detect when a user has put focus on the keyword. The agentmay detect when a mouse is over the keyword for a predetermined periodof time. The agent may detect when a user highlights or selects akeyword. The agent may detect when the user left or right clicks on thekeyword. The agent may detect when a user double clicks the keyword. Theagent may detect when a user has put focus on the keyword and hitentered. The agent may detect any set of keystrokes with respect to thekeyword.

Responsive to the detection, the agent may display augmented content,for example, any of the forms depicted in FIG. 5I. In some embodiments,responsive to detecting a mouse over of the keyword, the agent displaysa tooltip delivering a campaign assigned to the keyword. In someembodiments, responsive to detecting a click on the keyword, the agentdisplays a tooltip delivering a campaign assigned to the keyword.Responsive to detection of the predetermined user interaction, the agentmay display augmented content of any form, such as related videos, inpredetermined areas or space on the page. Responsive to detection of thepredetermined user interaction, the agent may display advertisements ofany form, in predetermined areas or space on the page.

In some embodiments, the tooltip may remain displayed until the mouse ismoved off of the keyword. In some embodiments, the tooltip may remaindisplayed until the mouse is moved off of the keyword for apredetermined time. In some embodiments, the tooltip may remaindisplayed until the mouse is moved off of the keyword until the usercloses or exists the tooltip. In some embodiments, if the user clicks onthe keyword after the mouse over, the tooltip remains displayed untilthe user closers or exits the tooltip. In some embodiments, anyaugmented content may change as the user moves the focus or mouse overto another keyword. For example, moving the mouse to a second keywordmay cause a different advertisement to appear in a banner ad or maycause a new tooltip to be displayed or content of the current displayedtooltip to change.

The agent and may perform all or any of the steps of the method of FIG.5K in real-time upon receipt and/or loading of the page. For example,the agent and the server may be designed and constructed to performembodiments of steps 580 through 594 within a predetermined time whilethe page is being loaded by the browser. In some embodiments, the agentand the server may perform embodiments of steps 580 through 594 inmilliseconds, for example within in 100, 200, 300, 400, 500, 600, 700,800 or 900 milliseconds or within 10, 20, 30, 40, 50, 60, 70, 80 or 90milliseconds, or within 1, 2, 3, 4, 5, 6, 7, 8 or 9 milliseconds or 0.1,0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8 or 0.9 milliseconds. The agent and theserver may be designed and constructed to perform embodiments of steps580 through 594 while the page is loading and before the page iscompletely loaded. The agent and the server may be designed andconstructed to perform embodiments of steps 580 through 594 in thebackground while the pages is being loaded and/or the user is browsingthe loaded page.

D. Extended Content Harvesting for Contextualizing

Embodiments of systems and methods of the present solution extend thescope of content harvesting to cover a wider range of page elements thatare harvested for determining keywords and content to augment thekeywords To improve contextualization for keyword and augment contentdetermination, the present solution may harvest content from parts ofpages that cannot be hooked by embodiments of the systems previouslydescribed herein. Some of these parts of the pages may not be hooked orhookable, either for technical reasons, such as title tags, attributesor image alt attributes) or for policy reasons, such as anchor text. Thepresent solution may also use formatting of keyword, such as style andstructure, for contextualization as well as URLs to underlying assetsand identifier or attributes of corresponding text. To further improvecontextualization, the present solution may also retrieve content fromlinked pages not currently displayed to use parts of these pages forkeywords and augmented content determination.

Referring now to FIG. 6A, an embodiment of a system for performingextended content harvesting is depicted. In brief overview, any of thesystems previously described herein may be modified or enhanced toinclude a content harvester 610, 610′. The content harvester may obtainor retrieve text from unhookable parts of a page 517, such as title, ALTtag, anchor text and header tags. The content harvester may alsoretrieve content identified by URLs on a current page 517, such ascontent from linked pages 517A-517N. The agent may identify hookabletext from the page 517. The agent may sent page data 615 to the server.The page data may include content or text identified from the page 517and/or content or text from the unhookable parts of the page 517, and/orcontent or text identified from the linked pages 517A-517N. In theprocess of keyword matching, ranking and campaign selection, the servermay use content from the page data to determine keywords from the pagedate and content for which to augment such keywords.

The content harvester 610 may be any type and form of executableinstruction executing on a device. The content harvester may be a partof the agent. In some embodiments, the content harvester comprisesinstructions in the form of script, such as Javascript, executed as partof the agent. In some embodiments, the content harvester is a separateset of executable instructions, such as a script, that executes on theclient. The content harvester may execute as part of the browser or inthe memory space of the browser. In some embodiments, the contentharvester may execute on the server, such as content harvester 610′. Insome embodiments, a portion of the content harvester 610 may execute onthe client and another portion of the content harvester 610′ may executeon the server. In some embodiments, the content harvester 610 of theclient sends page or content thereof to the content harvester 610′ toperform identification and retrieval of text.

The content harvester 610 may be designed and constructed to identify,obtain or retrieve content from a page 517 or portions thereof. Thecontent harvester may identify and retrieve content for a web page beingloaded or being displayed. The content harvester may identify andretrieve content from a predetermined portion of a page. The contentharvester may identify and retrieve text areas from a page. The contentharvester may identify and retrieve hookable text areas from a page. Insome embodiments, the content harvester may identify and retrievecontent from user selected or defined portions of the page. In someembodiments, the content harvester may identify keywords in the page.

The content harvester may identify one or more URLs on a web page. Thecontent harvester may identify any URLs on the currently displayed webpage. In some embodiment. In some embodiments, the content harvester mayidentify URLs from predetermined portions of the page. In someembodiments, the content harvester may identify URLs from user selectedor defined portions of a page. In some embodiments, the contentharvester may identify a predetermined number of URLs. The contentharvester may retrieve content from the identified one or more URLs. Aswith any of the embodiments of the content harvester above for a pagebeing loaded or displayed, the content harvester may retrieve contentfrom the identified one or more URLs and identify and retrieve any textor other portions of the retrieved content. The content harvester mayidentify and retrieve any hookable or non-hookable text portions of theretrieved content, including title, ALT tag, anchor text and headertags.

The content harvester may identify any formatting 612 of text portionsof content, of current page or retrieved content. In some embodiments,the content harvester identifies any stylistic information of text,including but not limited to font, size, color, font style, font or texteffect, an underline style and/or color. In some embodiments, contentharvester identifies or determines a text is bolded. In someembodiments, the content harvester identifies any structural informationof text, including but not limited to whether the text is in, part of orassociated with a table, a paragraph, a predetermined numberedparagraph, an outline, a script, a tag or attribute. In someembodiments, the content harvester identifies any structural informationof text in terms of elements or structure of a corresponding CascadingStyle sheet (CSS). In some embodiments, the content harvester identifiesany structural information of text in terms of elements or structure ofan HTML/DHTML page. In some embodiments, the content harvesteridentifies any identification information 613 of text, including but notlimited to, a class name, a CSS class name, a property, CSS property,name, id, or attribute.

The content harvester may perform multi-level content harvesting up to apredetermined depth level or within a predetermined time period. For thecurrent web page, the content harvester may identify via URLs any linkedpages 517A-517N. The content harvester may retrieve the content fromthese linked pages. The content harvester may identify URLs in thecontent retrieved from these linked pages to identify and retrievecontent from a second layer of linked pages. The content harvester maykeep identifying URLs in pages linked to a predetermined depth (e.g.2^(nd) layer, 3^(rd) layer, 4^(th) layer . . . Nth layer of linkedpages). The content harvester may keep identifying URLs in n-depthlayers up until a predetermined time period (e.g., keep traversing toNth layer until a timer expires).

In further details, the page 517, such as a web page being currentlyloaded or being displayed on the client via the browser may have variousdifferent parts that can be harvested by the content harvester 610. Insome embodiments, the page may comprise a page title. The page title maybe the TITLE element in the HEAD section of an HTML document. The titleelement may identify the contents of the document. The page title ortitle element may be designed or constructed to be search enginefriendly. The page title may include one or more primary keywordphrases. The page title may include one or more secondary keywordsphrases. The page title may include a combination of one or more primarykeywords and one or more secondary keywords.

The page may include one or more header tags. Header tags may be used todefine HTML headings. Header tags may identify the relevant importanceof the section. The <h1> may define the most important heading while<h6> may define the least important heading. The author of the page mayput information about the subject matter of the page in the header tags.

The page may include anchor text. The anchor text may include thetextual components of hyperlinks (text links) Anchor text may provideadditional descriptive information about the referred page and,therefore, may be used as metadata. The anchor text sometimes referredto as a link label or link title is the visible, clickable text in ahyperlink. In some embodiments, for policy reasons an anchor text may bedetermined not to be hookable by the systems and methods describedherein although is the type of page element that can be hooked by thesystems and described herein. So, although not to be hooked by thesystem, the anchor text may remain useful for contextualization andcampaign selection described herein.

The page may include one or more ALT attributes, which may sometimes bereferred to as ALT tags. The alt attribute may be used in HTML typedocuments to specify alternative text (alt text) that is to be renderedwhen the element to which it is applied cannot be rendered. The ALTattributed may be an attribute of an image tag. In some embodiments, thebrowser displays the ALT attribute text in a tooltip. Where the page hasan image, the editor or author may put useful information about thesubject matter in the ALT attribute.

In some embodiments, the agent, such as via content harvester 610identifies the page title, anchor text, header text and/or ALTattributes for the page 517. The page title, header text and/or ALTattributes may be parts of the page that are not hookable to provideaugments content such as by the embodiments of methods described inconjunction with FIG. 5K. The agent may identify any text from any ofthese parts of the page. The agent may use or combine the text from thepage title, header text and/or ALT attributes in combination with anytext in the body of the page 517.

In some embodiments, the agent, such as via content harvester 610identifies the URLs or hyperlinks in the page 517. The agent mayretrieve content from the page or resource identified by a URL orhyperlink. In some embodiments, the agent retrieves all the content fromthe URL. In some embodiments, the agent retrieves all the content fromthe URL except for images. In some embodiments, the agent retrievespredetermined type of content from the URL, such as text, page title,anchor text, header text and/or ALT attributes. In some embodiments, theagent retrieves text from the content of the URL. In some embodiments,the agent sends the URLs or the page with the URLs to the server, suchas content harvester 610′, to retrieve content and identify text fromthe retrieved content of the URLs. In some embodiments, the agentidentifies, retrieves and processes content from the URLs of a page asthe page is being loaded or being displayed. In some embodiments, theagent identifies, retrieves and processes content from URLs that are notbeing currently loaded or displayed on a page that is being loaded ordisplayed.

The agent may send page data 615 to the server. The page data maycomprise any portion of the currently being displayed and/or any portionof content retrieved from the URLs not currently being displayed. Thepage data may include text from the page being loaded or currentlydisplayed. The page data may include retrieved content or text from anyURLs of the page being loaded or currently displayed. The page data mayinclude a first set of text selected by the agent from the pagecurrently being loaded or displayed and a second set of text selectedand retrieved by the agent from URLs identified on the page currentlybeing loaded or displayed. The page data may include one or more URLScorresponding to or identifying one or more assets, such as a script orimage. The page data may include formatting of any text, whether or notthe text is included in the page data. The page may include anyattribute or identification information 613 of any text, whether or notthe text is included in the page data. In some embodiments, the pagedata includes any stylistic, structural and/or identificationinformation corresponding to text in the page data.

Referring now to FIG. 6B, an embodiment of a method for contentharvesting is depicted. In brief overview, at step 630, content isharvested from extended information of text, such as formatting andidentification information, on a page being loaded or displayed. At step635, server receives page data including the extended contentinformation. At step 640, the server identifies keywords from the pagedata. At step 665, the server determines content to augment theidentified keywords. At step 592′, the server sends to the agent theselected keywords and their content and may provide the agent tooltipsand/or augmented content. At step 594′, the agent hooks the keywordsidentified by the server. At step 596′, the agent detects userinteraction such as mouse over or clock of keywords and displaysaugmented content, such as a tooltip.

In further details of step 630, the agent via content harvester mayidentify any extended content or context information of text on a page,such as page being loaded or displayed. The extend content or contextinformation may including formatting and/or identification informationof text. In some embodiments, the agent identifies any formattinginformation 612 of any text, hookable or not. This may includeidentifying any stylistic or structural information of the text. In someembodiments, the agent identifies any identification information 613 ofany text, hookable or not. The agent may identify any URLs for anyunderlying assets of the page. The agent may identify a URL to an imageon the page. The agent may identify a URL to a script on the page.

The agent generates, forms or otherwise provides page data forprocessing by the augmentation server. The agent may provide page datacomprising text identified from the current page. The agent may identifyany non-hookable text of a page title, header tag or ALT attribute fromthe current page. The page data may include formatting information oftext in the page date, such as stylistic and/or structural informationof text. The page data may include identification information of text inthe page date, such as a name, identifier or attribute of the text. Thepage may data may include one or more URLs to a script and/or image.

In some embodiments, the agent filters any of the text from the currentpage in providing such page data to the server. In some embodiments, theagent reduces duplicate text. In some embodiments, the agent reducestext of the same verb having different tenses or participles, such as toa base form of the verb. In some embodiments, the agent reduces textwith different plurals of the same noun to a base form of the noun. Insome embodiments, the agent filters the text based on frequency of thetext in the content of the current page and/or content of the retrievedcontent. In some embodiments, the agent filters the text based onlocation of the text in the content of the current page and/or contentof the retrieved content.

The agent transmits or communicates the page data to the server. Theagent may transmit the page data in one transmission. In someembodiments, the agent transmits the text of the current page in one ormore transmissions. In some embodiments, the agent transmits theextended content information in one or more transmissions. In someembodiments, the agent transmits the extended content information withthe text. In some embodiments, the agent transmits the extended contentinformation separate from the text. In some embodiments, the agenttransmits the URLs with the extended content information. In someembodiments, the agent transmits the URLs with the text.

At step 635, the server identifies keywords from the page data. Theserver may use unhookable text portions in the page data to identifykeywords. The server may use any text (hookable or unhookable) toidentify keywords. The server may use any extended content information,such as formatting and/or identification information to identifykeywords. This step may include any of the steps of and embodiments ofthe steps 582, 584, 586, and/or 588 described in connection with FIG.5K. In the context of step 635, these steps may be performed with pagedata that includes unhookable text, such as page title, anchor text,header attributes and ALT attributed. In the context of step 635, thesesteps may be performed with page data that includes formatting and/oridentification information of text, such as stylistic and structuralinformation. In the context of step 635, these steps may be performedwith page data that includes URLs to one or more assets, such as scriptsand/or images.

In some embodiments, the extended content information may be weighted orused to perform weighting for keyword selection. In some embodiments,the unhookable text may be weighted or used to perform weighting forkeyword selection In some embodiments, the formatting and/oridentification information of text may be weighted or used to performweighting for keyword selection. In some embodiments, the stylisticinformation may influence the weight, ranking or relevancy for akeyword. For example, if the keyword is bolded, the weighting, rankingor relevancy of a keyword may be changed. In some embodiments, thestructural information may influence the weight, ranking or relevancyfor a keyword. For example, if the keyword is part of a script or in acertain paragraph, the weighting, ranking or relevancy of a keyword maybe changed. In some embodiments, the identification information mayinfluence the weight, ranking or relevancy for a keyword. For example,if the text is identified by a predetermined name, attribute orproperty, the weighting, ranking or relevancy of a keyword may bechanged. The server may analyze and use any of the formatting and/oridentification information an manner to impact or influence weight,ranking or relevancy of a keyword.

At step 640, the server determines content to augment the identifiedkeywords. This step may include any of the embodiments of step 590described in connection with FIG. 5K. In the content of embodiments ofthis method, as the keywords are identified using page data that mayinclude unhookable text, the determination of augmentation content maybe influenced or impacted by the same. In some embodiments, theunhookable text may increase the relevancy of weighting of certainkeywords to change how they are used or how they match campaigns duringcampaign or augmented content selection. In the content of embodimentsof this method, as the keywords are identified using page data that mayinclude formatting and/or identification information, the determinationof augmentation content may be influenced or impacted by the same. Inthe content of embodiments of this method, as the keywords areidentified using page data that may include URLs, the determination ofaugmentation content may be influenced or impacted by the same

The server may identify or determine a relevant advertisement campaignbased on the one or more keywords. The server may identify or determinepage views from content of a published or web site to provide asaugmented content based on the one or more keywords. In someembodiments, the unhookable text content is used for contextualizing apage to determine the context of the page. In some embodiments, theformatting information of text is used for contextualizing a page todetermine the context of the page. In some embodiments, theidentification information of text is used for contextualizing a page todetermine the context of the page. The server may use any combination ofextended content information and keyword to determine a context of thepage. Based on the context, the server may identify or determinecampaigns or augmented content for delivering to the client for thecurrent page.

Based on the unhookable text and/or extended content information, theserver may filter out certain campaigns or augmented content during theselection process. Based on the formatting of text, the server mayfilter out certain campaigns or augmented content during the selectionprocess. Based on the identification information of text, the server mayfilter out certain campaigns or augmented content during the selectionprocess. With a deeper reach of information within the page the page,the server may determine a better matching campaign or more appropriateaugmented content.

At step 592′, 594′ and 596′, the method may include any embodiments ofthese steps described in connection with FIG. 5K. At step 592′, theserver may communicate campaigns selected by the server based on theidentified keywords from the page data including unhookable text. Insome embodiments, at step 592′, the server may communicate campaignsselected by the server based on the formatting of keywords from the pagedata. In some embodiments, at step 592′, the server may communicatecampaigns selected by the server based on the identification informationof keywords from the page data. At step 594′, the client agent hooks theidentified keywords on the currently displayed web page or the web pagebeing currently loaded. At step 596′, the augmented content is displayedas an overlay or tooltip on the current page responsive to detecting amouse-over. Based on the systems and methods described herein, theaugmented content delivered to the client and displayed to the user arebased on unhookable text and/or extended harvesting of content from thecurrent page.

Referring now to FIG. 6C, another embodiment of a method for contentharvesting using retrieved content from one or more URLs is depicted. Inbrief overview, at step 650, content is harvested from one or more URLsidentified on a page being loaded or displayed. At step 655, text fromthe page being loaded or displayed and text from the content retrievedvia the URLs is identified. Page data is sent to the server. At step660, the server identifies keywords from the page data. At step 665, theserver determines content to augment the identified keywords At step592′, the server sends to the agent the selected keywords and theircontent and may provide the agent tooltips and/or augmented content. Atstep 594′, the agent hooks the keywords identified by the server. Atstep 596′, the agent detects user interaction such as mouse over orclock of keywords and displays augmented content, such as a tooltip.

In further details of step 650, the agent via content harvester 610 mayidentify one or more URLs on a page being loaded or displayed by abrowser of a client. In some embodiments, the agent may identify anyURLs in the body of the page. In some embodiments, the agent mayidentify any URLs in the text area of the page. In some embodiments, theagent may identify any URLs having one or more predetermined strings orkeywords. In some embodiments, the agent may identify any URLs from aweb-site, domain, publisher or content provider. In some embodiments,the agent may identify a predetermined number of URLs from the pagebeing loaded or displayed on the client. In some embodiments, the agentmay identify any URLS of the page that are not currently being displayedor loaded on the page. In some embodiments, the agent may identifyportions of the content from the page being loaded or displayed, such astext areas or unhookable areas such as page title, header tags, anchortext and ALT attributes. In some embodiments, the agent may identify anyformatting of text on the current page. In some embodiments, the agentmay identify any identification information of text on the current page

The agent via content harvester may retrieve content from any of theidentified URLs. In some embodiments, the agent may retrieve contentfrom as many of the identified URLs that may be retrieved within apredetermined time period. In some embodiments, the agent may performmulti-level harvesting by identifying and retrieving content from URLsidentified and retried from the current web page. In some embodiments,the agent may retrieve portions of the content from the URL, such astext areas or unhookable areas such as page title, header tags, anchortext and ALT attributes. In some embodiments, the agent may search thecontent of the URL to determine if any text matches, corresponds to oris otherwise related to any terms, keywords or text of the current page.In some embodiments, the agent may retrieve the page from the URL andperform the same processing on the retrieved page as the page beingloaded or displayed. In some embodiments, the agent may identify anyformatting of text of retrieved content or pages. In some embodiments,the agent may identify any identification information of text ofretrieved content or pages.

At step 655, the agent generates, forms or otherwise provides page datafor processing by the augmentation server. The agent may provide pagedata comprising text identified from the current page. The agent mayidentify any non-hookable text of a page title, header tag or ALTattribute from the current page. The agent may provide page datacomprising text from content retrieved from any one or more URLs of thecurrent page data. The agent may identify any non-hookable text of apage title, anchor text, header tag or ALT attribute from the contentretrieved via the URLs. The agent may provide page data comprising anycombination of text from the current page and text retrieved via URLs.The agent may identify in the page data that a first set of text is fromwithin the current page and a second set of text is from the retrievedcontent of the URLs. In some embodiments, the agent combines the textfrom both sources to a single set of text comprising text from thecurrent page and text from the URLs. The agent may provide page datacomprising any formatting of corresponding text in the first set of textand/or the second set of text. The agent may provide page datacomprising any formatting of any text in the page that is not includedin the page data. The agent may provide page data comprising anyidentification information of corresponding text in the first set oftext and/or the second set of text. The agent may provide page datacomprising any identification information of any text in the page thatis not included in the page data. The agent may provide page datacomprising one or more URLS corresponding to a script or image,sometimes referred to as an asset.

In some embodiments, the agent filters any of the text from the currentpage and/or from the URLs in providing such page data to the server. Insome embodiments, the agent reduces duplicate text. In some embodiments,the agent reduces text of the same verb having different tenses orparticiples, such as to a base form of the verb. In some embodiments,the agent reduces text with different plurals of the same noun to a baseform of the noun. In some embodiments, the agent filters the text basedon frequency of the text in the content of the current page and/orcontent of the retrieved content. In some embodiments, the agent filtersthe text based on location of the text in the content of the currentpage and/or content of the retrieved content.

The agent transmits the page data to the server. The agent may transmitthe page data in one transmission. In some embodiments, the agenttransmits the text of the current page in one or more transmissions. Insome embodiments, the agent transmits the text from the retrievedcontent in one or more transmissions. In some embodiments, the agenttransmits the text on a per URL basis. In some embodiments, the agenttransmits the URLs to the server. The server may retrieve the contentfrom the URLs.

At step 660, the server identifies keywords from the page data. Theserver may use unhookable text portions in the page data to identifykeywords. The server may use any text (hookable or unhookable) fromfetched URLs to identify keywords. This step may include any of thesteps of and embodiments of the steps 582, 584, 586, and/or 588described in connection with FIG. 5K. In the context of step 660, thesesteps may be performed with page data that includes unhookable text,such as page title, anchor text, header attributes and ALT attributed.In the context of step 660, these steps may be performed with page datathat includes formatting and/or identification information of text, suchas stylistic and structural information. In the context of step 660,these steps may be performed with page data that includes URLs to one ormore assets, such as scripts and/or images. In the context of step 660,these steps may also be performed with page data fetched from URLSidentified via the current web page but not displayed on the current webpage. In the context of the step 660, these steps may also be performedwith a combination of page data fetched from URLS identified via thecurrent web page but not displayed on the current web page andunhookable text from the current page and/or fetched content.

In some embodiments, the unhookable text and fetched URL content may beweighted or used to perform weighting for keyword selection. Keywordsfounds in unhookable text and/or fetched URL content may up weight ordown weight a relevancy of a keyword. For example, if keywords are foundin both the hookable text of the page and the unhookable text of thepage, the weighting, ranking or relevancy of a keyword may be changed.If keywords are found in both the hookable text of the page and theunhookable text of fetched URL content, the weighting, ranking orrelevancy of a keyword may be changed. If keywords are found in both thehookable text of the fetched URL content and the unhookable text offetched URL content, the weighting, ranking or relevancy of a keywordmay be changed. If keywords are found in the hookable text of the page,the hookable text of the fetched URL content and the unhookable text offetched URL content, the weighting, ranking or relevancy of a keywordmay be changed. If keywords are found in the hookable text of the pagebut not in either the unhookable text of the page or the fetched URLcontent, the weighting, ranking or relevancy of a keyword may bechanged.

In some embodiments, the formatting and/or identification information oftext may be weighted or used to perform weighting for keyword selection.In some embodiments, the stylistic information may influence the weight,ranking or relevancy for a keyword. For example, if the keyword isbolded, the weighting, ranking or relevancy of a keyword may be changed.In some embodiments, the structural information may influence theweight, ranking or relevancy for a keyword. For example, if the keywordis part of a script or in a certain paragraph, the weighting, ranking orrelevancy of a keyword may be changed. In some embodiments, theidentification information may influence the weight, ranking orrelevancy for a keyword. For example, if the text is identified by apredetermined name, attribute or property, the weighting, ranking orrelevancy of a keyword may be changed. The server may analyze and useany of the formatting and/or identification information an manner toimpact or influence weight, ranking or relevancy of a keyword.

At step 665, the server determines content to augment the identifiedkeywords. This step may include any of the embodiments of step 590described in connection with FIG. 5K. In the content of embodiments ofthis method, as the keywords are identified using page data that mayinclude unhookable text and fetched URL content, the determination ofaugmentation content may be influenced or impacted by the same. In someembodiments, the unhookable text and fetched URL content may increasethe relevancy of weighting of certain keywords to change how they areused or how they match campaigns during campaign or augmented contentselection. In the content of embodiments of this method, as the keywordsare identified using page data that may include formatting and/oridentification information, the determination of augmentation contentmay be influenced or impacted by the same. In the content of embodimentsof this method, as the keywords are identified using page data that mayinclude URLs, the determination of augmentation content may beinfluenced or impacted by the same

The server may identify or determine a relevant advertisement campaignbased on the one or more keywords. The server may identify or determinepage views from content of a published or web site to provide asaugmented content based on the one or more keywords. In someembodiments, the unhookable text and/or fetched URL content is used forcontextualizing a page to determine the context of the page. In someembodiments, the formatting information of text is used forcontextualizing a page to determine the context of the page. In someembodiments, the identification information of text is used forcontextualizing a page to determine the context of the page. The servermay use any combination of text or keywords to determine a context ofthe page. Based on the context, the server may identify or determinecampaigns or augmented content for delivering to the client for thecurrent page.

Based on the unhookable text and/or fetched URL content, the server mayfilter out certain campaigns or augmented content during the selectionprocess. Based on the formatting of text, the server may filter outcertain campaigns or augmented content during the selection process.Based on the identification information of text, the server may filterout certain campaigns or augmented content during the selection process.With a deeper reach of information within the page and linked via thepage, the server may determine a better matching campaign or moreappropriate augmented content.

At step 592′, 594′ and 596′, the method may include any embodiments ofthese steps described in connection with FIG. 5K. At step 592′, theserver may communicate campaigns selected by the server based on theidentified keywords from the page data including unhookable text and/orfetched URL content. In some embodiments, at step 592′, the server maycommunicate campaigns selected by the server based on the formatting ofkeywords from the page data. In some embodiments, at step 592′, theserver may communicate campaigns selected by the server based on theidentification information of keywords from the page data. At step 594′,the client agent hooks the identified keywords on the currentlydisplayed web page or the web page being currently loaded. At step 596′,the augmented content is displayed as an overlay or tooltip on thecurrent page responsive to detecting a mouse-over. Based on the systemsand methods described herein, the augmented content delivered to theclient and displayed to the user are based on extended harvesting ofcontent from the current page and/or linked pages.

E. Contextualization Services for Multiple Augmented Content DeliveryTypes

Embodiments of systems and methods of the present solution are directedto providing contextualization services for delivering a plurality ofdifferent augmented content types. With embodiments of the augmentationserver and/or agent as described herein, the present solution mayreceive from an agent web page data from a currently loading web pageand the server may contextualize such web page data to provide augmentedcontent that is related to or meaningful to the context of the web page.The contextualization services of the augmentation server and/or agentmay select and deliver one or more different types of augmented content,from in-text advertisement, 510, interest ads 512, related content 514and as described below inline mobile advertising

Referring to FIG. 7, an embodiment of a system for providingcontextualization services and to select/deliver one or more of aplurality of different augmented content types is depicted. In briefoverview, an agent 520 on the client 130 identifies data from the webpage 517 currently being loaded in browser. The agent 520 sendscontextual data 715 to the contextualization engine 750 of server 110.The contextualization engine 750 analyzes the contextual data andselects a campaign or augmented content based on the context of the webpage. The contextualization engine 750 communicates thecontextualization results 730, which may be campaign information or theaugmented content, to the agent 520. The agent uses thecontextualization results 730 to place, load, display or otherwiseinclude in the web page 517 one or more augmented content types710A-710N (generally referred to as 710).

The agent 520 may include any of the embodiments of the agent describedherein. The agent 520 may identify, obtain or extract any text and/ormetadata from the page 517. The agent 520 may identify, obtain orextract any text and/or metadata from URLs, pages or other resourcesidentified by or accessible via the page 517. By obtaining suchinformation, the agent may contextualize the page. The agent may sendany text and/or metadata from or of the page to the contextualizationservice via contextual data 715. The agent may identify and send thecontextual data while or during the loading or displaying of the page517. The contextual data may include any one or more of the following:

-   -   text within content or body of a page,    -   text of URLs or portions thereof    -   text from content fetched via URL(s)    -   text within values, parameters, tags of markup language        information    -   text within header or fields of protocol or language of page    -   text of or within scripts    -   text of or within invisible or non-displayed areas    -   unhookable text, such as title, ALT tag/attributes, anchor text        or header tags    -   URLs to resources/assets    -   metadata about any of the text, content or page    -   metadata from any markup language, script or protocol    -   metadata of formatting of text    -   metadata of style of text    -   metadata of structure of text    -   metadata regarding frequency of text    -   metadata regarding location of text    -   metadata regarding identifiers of text    -   metadata of attributes of text    -   extended content harvesting test and metadata    -   information about browser, client or agent    -   network information    -   user information or user profile    -   metric(s) on any one or more of the above

The contextualization service 750 may include any embodiments of theaugmentation server 110 described herein. The contextualization servicemay receive, process and analyze the contextual data 715, such as data715 received from the agent. The contextualization service may use allor any portion of the contextual data 715 to select a campaign and/orcontent to use for augmentation. The contextualization service may useany campaign or content selection algorithm described herein to selectthe campaign or content based on the contextual data. Based on matchingthe contextualization data to a campaign or content, thecontextualization service may send the contextualization results 730 tothe agent.

The contextualization results may include identification of one or morekeywords for or of the page. The contextualization results may includeinformation on one or more keywords for or of the page. Thecontextualization results may include identification and/or informationon formatting, structure of stile of one or more keywords. Thecontextualization results may include identification of a selectedcampaign. The contextualization results may include information aboutthe campaign. The contextualization results may include identificationof and/or information about an advertiser corresponding to the campaign.The contextualization results may include any form of advertisement tobe displayed on the page, such as via agent. The contextualizationresults may include identification of and/or information about apublisher corresponding to the campaign. The contextualization resultsmay include identification of any augmented content to be displayed onthe page, such as via agent. The contextualization results may includeinformation on any augmented content to be displayed on the page. Thecontextualization results may include the augmented content to bedisplayed on the page.

The contextual service may identify, provide information on or provideone ore more augmented content types, such as based on the contextualdata. The agent may request the contextualization service to identify,provide information on or provide one or more augmented content types,such as based on the contextual data. The contextual service mayidentify, provide information on or provide an augmented content type ofany form of advertisement. The contextual service may identify, provideinformation on or provide an augmented content type of any form ofaugmented content. The contextual service may identify, provideinformation on or provide a plurality of augmented content types. Thecontextual service may identify, provide information on or provide anaugmented content type of any form of augmented content. The contextualservice may identify, provide information on or provide an augmentedcontent type of in-text advertising. The contextual service mayidentify, provide information on or provide an augmented content type ofan interest ad. The contextual service may identify, provide informationon or provide an augmented content type of related content. Thecontextual service may identify, provide information on or provide aplurality of augmented content types including in-text advertising,interest ads and/or related content. As discussed below, the contextualservice may identify, provide information on or provide an augmentedcontent type of toolbar. The contextual service may identify, provideinformation on or provide an augmented content type of imageadvertising. The contextual service may identify, provide information onor provide an augmented content type of mobile inline advertising. Thecontextual service may identify, provide information on or provide aplurality of augmented content types including any combination ofin-text advertising, interest ads, related content, image advertising,mobile inline advertising, and/or toolbar contextualization

F. Contextualization Services for Inline Mobile Advertising

Referring now to FIGS. 8A, 8B and 8C embodiments of systems and methodsfor using contextualization services to deliver inline advertisement andcontent augmentation (e.g., a type of augmentation 710) for mobiledevices is described. In general overview, the agent may contextualizeportions of a page currently being loaded or displayed on a mobiledevice to identify and send contextual data to the contextualizationservice of the server. The contextual data may be based on thoseportions and/or surrounding portions of the page in current view on themobile device. The contextualization service may use the contextual datato select a campaign from a plurality of campaigns to deliver anadvertisement for the page. Based on the selected campaign, thecontextualization service may send a advertisement or campaigninformation for the advertisement to the agent for display inline withthe content being viewed on the mobile device, such as an inline bannerat the next natural break in the content. Instead of having anadvertisement predetermined or fixed for the currently viewed contentprior to the display of the page, the present solution dynamicallycontextualizes the portions of the page at the point of or displayingthose portions of the page on the mobile device and thecontextualization is based on the content of the portions of page beingloaded/displayed on the mobile device.

The advertisement(s) for the mobile content may be contextualized toprovide advertisement(s) regarding products and/of services of anadvertiser or publisher associated with a subject or context of thatportion of the content being viewed via the mobile device or contentsurrounding the portion of the page being viewed on a mobile device. Thecontextualization may be focused or limited to the content of a pagecurrently in view on the mobile device. The advertisement may bedesigned and constructed to leverage the existing space or real estateon the page, such as an inline advertisement that fits within a naturalbreak on the page, such as between paragraphs on the page. For example,one form of advertisement may be a inline banner about the width of aparagraph displayed after a paragraph identifying one or more keywordsfor contextualization. Such a banner may allow a viewer to see most orall of the content (e.g. paragraphs) while being able to see and/orinteract with the advertisement.

The inline mobile advertisement provides content providers andpublishers an opportunity to generate advertisement and revenueopportunities from within existing site/page real estate and inventoryand furthermore, at the point of viewing related content on the mobiledevice. With limited viewing windows and capabilities on a mobiledevice, a user or viewer of the mobile device may quickly scroll throughor scroll by portions of a page, may skip over portions of a page andmay therefore only view or interface for any meaningful time periodcertain content of the page. Embodiments of the present solutiondynamically and selectively provide augmented content and/oradvertisements to those portions of the contents currently being viewedon the mobile device. Therefore, instead of providing augmented contentor advertisement for those pages not being viewed or being scrolled byor skipped, the present solution provides advertisements and/oraugmented content contextualized to those portions of the content theuser is viewing or engaging via a mobile device.

The advertisement and/or augmented content may be inserted, placed ordisplayed within the existing content being viewed or to be viewed. Theadvertisement and/or augmented content may be inserted, placed ordisplayed within natural breaks within the content. For example, theuser may currently be viewing a paragraph of a plurality of paragraphsof content. Embodiments of the present solution contextualize thisparagraph and display an advertisement in the white space or breakalready existing between this paragraph and the next paragraph. Such anadvertisement therefore may not take up more page real estate but fitswithin existing white space or breaks on the page and at or near thepoint of viewing by the user. Embodiments of the present solution maycreate and/or insert space or breaks into the viewed content to insertor place an advertisement and/or augmented content. The mobile inlineadvertisement may be used to deliver advertisement campaigns in additionto other advertisement campaigns that may be operating on or using otherreal estate or portions of the web-site viewed via the mobile device.For example, the present solution may deliver both in line mobileadvertising and image advertising for the same advertiser or fordifferent advertisers on the same page.

Referring now to FIG. 8A, an embodiment of an inline mobileadvertisement is depicted. In brief overview, a web page 517 may beloaded or displayed via a mobile device 100. The page 517 may comprisesa plurality of content portions 810A-810N, generally referred to asportions, content portions or content 810. A user may scroll or navigatethrough some of these content portions 810 to view a content portion,such as content portion 810A or 810B for a predetermined time 815. Theagent may detect that the user is currently viewing portions 810A or810B based on the predetermined time period 815 and contextualize thepage 517, such as at least portions 810A or 810B, via thecontextualization service 710. The agent may receive augmentedcontent/advertisement 812 (sometimes generally referred to as augmentedcontent or advertisement) from the contextualization service 750 andinsert, place or display augmented content and/or advertisement 812 in abreak 820 in the content, such as between content portion 810A andcontent portion 810N.

A content portion may comprise any section of a page. A content portionmay comprise any section or portion of the content section of the page.A content portion may comprise a paragraph. A content portion maycomprise a title. A content portion may comprise a part or section of anoutline. A content portion may comprise a navigational area of the page.A content portion may comprise a sub-navigational area of the page. Acontent portion may comprise a footer of the page. A content portion maycomprise a header of the page. A content portion may comprise a menu ofthe page. A content portion may comprise an image. A content portion maycomprise an advertisement. A content portion may comprise media, such asvideo and/or audio media. A content portion may comprise rich mediacontent, such as flash.

The advertisement may be displayed at the same time as the contentportion 810A triggering the contextualization. The advertisement may bedisplayed within a predetermined time after the content portion 810Atriggering the contextualization is displayed. The advertisement may bedisplayed within a predetermined time after the page is loaded. Theadvertisement may roll in from any direction onto or within the break.The direction of roll in for the advertisement may depend on theorientation of the advertisement within the break.

The advertisement 825 may comprise any type and form of executableinstructions, markup language, media, text and/or content. Theadvertisement 825 may be designed and constructed in a predeterminedmanner for a specific publisher, advertiser or campaign. In theseembodiments, the design and construction of the advertisement 825 mayinclude the desired or predetermined contextualization. Theadvertisement 825 may be configurable to be contextualized. For example,the advertisement 825 may receive instructions, commands orconfiguration data that dynamically changes the look, feel, contentand/or behavior of the advertisement 825. The advertisement 825 mayreceive and/or operate responsive to scripts and/or API calls.

The advertisement 825 may be of any form factor. The advertisement maybe designed and constructed to be a predetermined size, such as apredetermined length and width The advertisement may be designed andconstructed to be a full width of a content portion before or followinga break. The advertisement may be designed and constructed to be apartial width of a content portion. The advertisement may be designedand constructed to fit within a desired portion or available space ofthe break. The advertisement may be designed and constructed to bescalable or have the size dynamically changed based on the resolution ofan adjacent content portion, the size of the content portion, or thesize of the break in which the advertisement is to be placed ordisplayed. The advertisement may be placed, inserted or displayed in anylocation within the break. The advertisement may be placed, inserted ordisplayed at the head of the break. The advertisement may be placed,inserted or displayed at the middle of the break. The advertisement maybe placed, inserted or displayed at the foot of an adjacent contentportion. The advertisement may be placed, inserted or displayed at thehead of an adjacent content portion The advertisement may be placed,inserted or displayed on a side of a content portion. The advertisementmay be placed, inserted or displayed in any content portion.

The agent may detect any natural breaks between the plurality of contentportions 810. A natural break may be considered a break that alreadyexists or is preexisting on the page, such as a number of line(s) ofwhite space between paragraphs on the page. The agent may determine thatthere is a predetermined amount of white space between content portionsto identify or indicate a break. The agent may determine that there is apredetermined number of lines between content portions to identify orindicate a break. The agent may determine that there is a predeterminednumber of pixels between content portions to identify or indicate abreak.

In some embodiments, the agent may create, generate or otherwise providea break between content portions 810. In some embodiments, the agent maydetect that there is not a natural break 820 in a content portion 810and generate a break in a content portion to create two contentportions. In some embodiments, the agent may determine that a nextnatural break after a content portion is too far, remote or beyond apredetermined distance within the page and responsive to thedetermination, generate, create or provide a break 820. In someembodiments, the agent may insert a number of lines or white spacebetween sub-portions within a content portion, for example between linesin the same paragraph. In some embodiments, the agent may insert anumber of lines or white space between adjacent content portions.

The agent may determine that one or more content portions are withinview of the display of the mobile device. The agent may determine thatone or more content portions are within view or being displayed for atleast a predetermined time period 815. The agent may determine that oneor more content portions are within view or being displayed for apredetermined time after being scrolled into view. The agent maydetermine that one or more content portions are within view or beingdisplayed for a predetermined time after being selected or navigated to.The predetermined time period may be specified in secs, msecs or othergranularity. The predetermined time period may be specified via events,such as upon a mouse over event, a selection or click event orcompletion of scrolling event. The predetermined time period may bebased on the mouse or pointer activity being idle for an amount of time.

The agent may identify one or more content portions within view or beingdisplayed on the mobile device for contextualization, such as upontriggering of or expiration of the predetermined time period. The agentmay identify one content portion within view or being displayed. Theagent may identify any content portions subsequent to the one contentportion within view or being displayed. The agent may identify anycontent portions previous to the one content portion within view orbeing displayed. The agent may identify any content portions adjacent tothe one content portion within view or being displayed. The agent mayidentify any content portions partially displayed or partially in view.The agent may identify any content portions partially displayed orpartially in view that are adjacent to the one content portion withinview or being displayed.

The agent may identify text in any of the above identified contentportions and transmit web page data to the contextualization serviceincluding such text. The contextualization may be based on any one ormore identified content portions. The contextualization may be based onany one or more identified content portions, currently in view. Thecontextualization may be based on any one or more identified contentportions, currently in view, and any one or more adjacent contentportions. The contextualization may be based on any one or moreidentified content portions, currently in view, and any one or morecontent portions prior to such one or more identified content portions.The contextualization may be based on any one or more identified contentportions, currently in view, and any one or more content portionssubsequent to such one or more identified content portions. Thecontextualization may be based on the page 517.

Based on results of contextualization via the contextualizationservices, the advertisement may correspond to the subject matter of thecontent portion being viewed or displayed on the mobile device. Forexample, if the content portion identifies a keyword of an automobile,the inline advertisement inserted into the break may correspond to abrand of automobile. Based on results of contextualization via thecontextualization services, the advertisement may correspond to thesubject matter of text of a content portion being viewed or displayed.Based on results of contextualization via the contextualizationservices, the advertisement may correspond to the context of the contentportions being viewed or displayed. For example, if the content portionis about cooking, the inline advertisement inserted into the break maycorrespond to a manufacturer of cookware or a retailer of cookware.

The advertisement 825 may comprise any type and form of media providingan advertisement, including web page content, video, audio and/orimages. The advertisement may correspond to an ad of the advertiser,publisher or for the campaign. The advertisement may correspond to aplurality of ads of the advertiser, publisher or for the campaign. Theadvertisement displayed may be based on contextualization of a contentportion, a plurality of content portions or the page by thecontextualization services.

The look, feel, skin, branding and behavior of the advertisement 812 maybe contextualized based on the context of the page 517. Any sections ofthe advertisement 812 may be contextualized based on the context of thepage 517. The look, feel, skin, branding and behavior of theadvertisement 812 may be contextualized based on the context of one orore identified content portions. Any sections of the advertisement 812may be contextualized based on the context of the one or more identifiedcontent portions. Based on the contextualization performed via the agentand contextualization service described herein, the advertisement 812for display near or within the break may be dynamically determined.Based on the contextualization performed via the agent andcontextualization service described herein, the look, feel, skin,branding and behavior of the advertisement 812 for display near or in abreak may be dynamically determined.

Referring to FIG. 8B, an embodiment of an inline mobile advertisement isdepicted. In an overview, a mobile device 100 may be displaying contentportions 810A-810N of a web page 517. The content portions 810A-810N maycomprise a paragraph. One or more of the content portions may beseparated by a break 820, such as a naturally occurring break in theoriginally received web page 517. An agent executing on the mobiledevice may contextualize, such as responsive to a predetermined timeperiod, via the contextualization services the content portion 810Bhaving text corresponding to a keyword of a campaign, such as the texttomorrow corresponding a to keyword for a campaign for Intel. The agentmay receive the advertisement for the campaign as selected by thecontextualization service. The agent may detect and identify a break forplacement of the advertisement and display the advertisement in such abreak. The advertisement may remain displayed in the break. In someembodiments, the advertisement may be displayed when every the contentportion 810B is displayed or redisplayed.

In an example operation, the user of the mobile device may request a webpage. The web page 517 may comprise a plurality of content portions notshown. The user may have scrolled to or navigated to those portions810A-810N illustrated in FIG. 8B. The user may have scrolled/navigatedup or down to the current view. The user may have skipped over orscrolled/navigated by some content portions which as a result may not becontextualized. The pointer may be idle for a predetermined time periodas the user views the se content portions in the display of the mobiledevice. The agent may detect the idleness and/or expiration of thepredetermined time period.

Responsive to the detection of the predetermined time period, the agentmay identify and/or select one or more portions 810A-810N forcontextualization. The agent may identify and/or select content portion810B for contextualization. The agent may identify and/or select contentportion subsequent to content portion 810B for contextualization. Theagent may identify and/or select content portion prior to contentportion 810B for contextualization. The agent may identify and/or selectcontent portion 810B and any content portions prior to and/or subsequentto content portion 810B. The agent may select the page 517 forcontextualization. The agent identifies web page data based on theidentified and/or selected scope of contextualization and transmits theweb page data to the contextualization service. The agent and/or webpage data may identify that the contextualization or web page data isfor a mobile device or otherwise for an inline mobileaugmentation/advertisement service.

The contextualization service processes and analyzes the web page dataaccording to embodiments previously described herein to select acampaign from a plurality of campaigns to deliver augmentedcontent/advertisement 812 to the agent. The contextualization servicemay determine one or more text, terms or phrases in the web page datamatches or corresponds to predetermined keywords of one or morecampaigns. The contextualization service may select a campaign of anadvertiser or publisher from a plurality of advertisers or publishers.The contextualization service may select a campaign from a plurality ofcampaigns of an advertiser or publisher. The contextualization servicemay determine an inline mobile advertisement campaign to deliver to theagent. The contextualization service may determine an inline mobileaugmentation campaign to deliver to the agent. The contextualizationservice may transmit campaign information to the agent. Thecontextualization service may transmit the advertisement to the agent.The contextualization service may transmit the augmentation content tothe agent.

The agent may display the augmentation content/advertisement 812 ontothe page displayed on the mobile device. The agent may detect oridentify a break prior to, after or near one or more keywords matchingthe campaign. The agent may detect or identify a natural break followingthe content portion with one or more campaign keywords. The agent maydetect or identify a natural break following the content portion withthe most keywords corresponding to the campaign. The agent may create abreak in the content portion having a keyword corresponding to thecampaign. The agent may create a break in the content portion with themost keywords corresponding to the campaign. The agent may create abreak between adjacent content portions with keywords corresponding tothe campaign.

Referring now to FIG. 8C, an embodiment of steps of a method ofproviding contextualization services for inline mobile advertisement isdepicted. In brief overview, at step 845, the agent identifies contentportions of a page being viewed on a mobile device. At step 850, theagent identifies context data of the content portions forcontextualization. At step 855, the agent sends web page data tocontextualization service to provide a contextualizedadvertisement/augmented content for the content portions. At step 860,the contextualization service determines campaign and/or advertisementfor mobile device based on web page data. At step 865, thecontextualization service sends campaigninformation/advertisement/augmented content to agent. At step 870, theagent displays advertisement/augmented content near the contentportions, such as at a break. At step 875, the user interacts with theadvertisement. Any or all of the steps 845, 850, 855, 860 and 865 may beperformed while the web page is being loaded or during the loading ofthe web page.

Any or all of the steps 845, 850, 855, 860 and 865 may be performedwhile the content portion of the web page is being loaded or during theloading of the content portion. Any or all of the steps 845, 850, 855,860 and 865 may be performed while the content portion of the web pageis being viewed for a predetermined time period. Any or all of the steps845, 850, 855, 860 and 865 may be performed while the content portion ofthe web page has been viewed for a predetermined time period.

In further details of step 845, the agent may identify or detect acontent portion or portions 810 are in view of the screen or display ofthe mobile device. The agent may identify or detect a content portion orportions 810 have been scrolled, moved or navigated into view of thescreen or display of the mobile device. The agent may identify or detecta content portion or portions 810 have been viewed on the screen ordisplay of the mobile device for a predetermined time period. The agentmay identify or detect the content portions, upon and/or during loadingor displaying of the page. The agent may identify or detect the contentportions, upon and/or during loading or displaying of the contentportions on the page.

In an example embodiments of content portions include paragraphs, theagent the agent may identify or detect one or more paragraphs are inview of the screen or display of the mobile device. The agent the agentmay identify or detect one or more paragraphs are in view of the screenor display of the mobile device for a predetermined time period. Theagent may identify or detect one or more paragraphs 810 have beenscrolled, moved or navigated into view of the screen or display of themobile device. The agent may identify or detect the paragraphs, uponand/or during loading or displaying of the page. The agent may identifyor detect the content paragraphs, upon and/or during loading ordisplaying of the paragraphs on the page.

The agent may determine that an identified or detected content portionmeets a predetermined criteria. The agent may determine that an contentportion meets a predetermined criteria regarding size, such as at leasta predetermined number of lines. The agent may determine that a contentportion meets a predetermined criteria regarding location, such aswhether or not the content portion is located within a section or areaof the page defined by such criteria. The agent may determine thatmetadata regarding the content portion meets predefined criteria, suchas certain keywords, subject matter or context. The agent may determinethat metadata regarding the content portion does not meet certainexclusionary criteria, such as certain undesirable subject matter, forexample, adult themes or otherwise unsafe images. Any of thepredetermined criteria may be configurable or specified via any type andform of policies or rules.

At step 850, the agent may identify any content of the web page forcontextualization, including any content described in connection withFIG. 7. The agent may identify any content of the identified or detectedcontent portions for contextualization. The agent may identify anycontent of content portions adjacent to, subsequent to or prior to theidentified or detected content portions for contextualization. The agentmay use portions of or related to the detected or identified contentportion of the web page for contextualization. The agent may identifytext and/or metadata from a content portion. The agent may identify apredetermined text and/or metadata from a content portion, such ascertain tags, URLs or portions of the page. The agent may filter certaintext and/or metadata from the content of a content portion or the page.The agent may identify any text in, above, below or adjacent to thecontent portion. The agent may identify any text in tags in the contentportion, such as ALT tags. The agent may identify any text in any pagelanguage constructs, such as HTML constructs, that identify, provide forotherwise are associated with the content portion. The agent may contentharvest any content, invisible and/or visible from a content portion orthe page. The client agent may perform extended content harvesting viaany content of URLs or pages identified via the content portion or thepage.

The agent may identify location of the content portion on the page. Theagent may identify distance to or location between the content portionand other elements on the page. The agent may identify distance to orlocation between the content portion and the beginning of the page. Theagent may identify distance to or location between the content portionand the end of the page. The agent may identify any style and/or fontfor or related to the content portion. The agent may identify anorientation of the content portion on the page. The agent may identifyany colors used in or for the content portion. The agent may identifyany characteristics, attributes or parameters of the mobile device, suchas identification of system information, manufacturer information,display size, video driver, hardware information, operating systeminformation, browser or other application information.

At step 855, the agent sends contextual data 715 (also referred to asweb page data) to the contextualization service 750. The agent may sendany contextual data from the page. The agent may send informationidentifying the content portion(s). The agent may send any contextualdata specific to the content portion(s). The agent may send anycontextual data from other parts of the page associated with the contentportion(s). The agent may send any contextual data regarding the subjectmatter of the image. The agent may send any contextual data regardingthe context of the content portion(s). The agent may send the contextualdata while the web page is being loaded. The agent may send thecontextual data while the content portion is being loaded. The agent maysend the contextual data while the content portion is being viewed. Theagent may send the contextual data while the content portion is in viewon the display. The agent may send the contextual data while the contentportion is in view on the display for a predetermined time period.

The agent may send the contextual data as a single file or package ofdata. The agent may send the contextual data in portions at a time. Theagent may send the contextual data in real-time in batches of data. Theagent may send any contextual data the agent may identify or collectwithin a certain period of time period, such as any embodiments of thepredetermined time period.

At step 860, the contextual service receives the contextual data, suchas from the agent. The contextual service may receive, process and/oranalyze the web page data while the content portion is beingloaded/displayed. The contextual service may receive, process and/oranalyze the web page data while the current web page is beingloaded/displayed. The contextualization service processes and analyzessuch data to identify, select or determine a campaign from a pluralityof campaigns to use for this content portion and/or mobile device Thecontextualization service processes and analyzes such data to identify,select or determine a campaign from a plurality of campaigns to use forthe content portion and/or mobile device. The contextualization serviceprocesses and analyzes such data to identify, select or determine anadvertiser from a plurality of advertisers to use for content portionand/or mobile device. The contextualization service processes andanalyzes such data to identify, select or determine an advertiser from aplurality of advertisers to use for content portion and/or mobiledevice. The contextualization service processes and analyzes such datato identify, select or determine what advertiser or advertisement touse.

The contextualization service may determine keywords from the web pagedata and determine campaigns to apply to the content portion and/ormobile device for the keywords. The contextualization service maydetermine keywords from the web page data and determine the advertiserto apply to the content portion and/or mobile device for the keywords.The contextualization service may determine keywords from the web pagedata and determine the publisher/content provider to apply to thecontent portion and/or mobile device for the keywords. Thecontextualization service may determine keywords from the web page dataand determine the contextualization to apply to the content portionand/or mobile device for the keywords. Step 860 may comprise anyembodiments of server processing described in connections with steps 635and 640 described in connection with FIG. 6B and steps 660 and 665described in connection with FIG. 6C. Step 860 may comprise any of thesteps 582, 584, 586, 588 and 590 and embodiments thereof described inconnection with FIG. 5K.

At step 865, the contextualization service sends anadvertisement/augmented content 812 and/or campaign information to theagent. The contextualization service may send aadvertisement/augmentation and/or campaign information corresponding tothe selected campaign and/or advertiser. The contextualization servicemay send a advertisement/augmented content and/or campaign informationwhile the page is loading or being displayed. The contextualizationservice may send a advertisement/augmented content and/or campaigninformation while the content portion is loading or being displayed. Thecontextualization service may send a advertisement/augmented contentand/or campaign information while the content portion is in view of thedisplay or screen of the mobile device.

Step 865 may include any embodiments of step 592 of FIG. 5K or step 592′of FIG. 6B described herein. In some embodiments, the contextualizationservices sends the advertisement/augmented content to the agent. In someembodiments, the contextualization services sends configurationinformation for an advertisement/augmented content to be provided by theagent. In some embodiments, the contextualization services sendsinstructions, scripts or commands to create, generate or otherwiseprovide the advertisement/augmented content. In some embodiments, thecontextualization services sends instructions, scripts or commands tocontextualize or configure an advertisement/augmented content of or forthe page dynamically while the page is loading. In some embodiments, thecontextualization services sends campaign information, including any oneor more of advertiser information, social media site identifiers andinformation, search engine identifier, search default terms, links toweb-sites, URLs, feeds, or any other information to configuration anysection of the advertisement/augmented content. In some embodiments, thecontextualization services sends campaign information comprisinginformation on brand, look, feel, skin and/or behavior of theadvertisement/augmented content. In some embodiments, thecontextualization services sends campaign information comprisinglocation and/or placement of the advertisement/augmented content.

At step 870, the agent displays the advertisement/augmented content onthe page in association with, near, as part of or adjacent to thecontent portion. The agent may display, place or insert theadvertisement/augmented content in a natural break near a contentportion. The agent may display, place or insert theadvertisement/augmented content in a natural break subsequent to acontent portion.

The agent may display, place or insert the advertisement/augmentedcontent in a natural break prior to a content portion. The agent maydisplay, place or insert the advertisement/augmented content in a breakwhile the content portion is loading or during the loading of thecontent portion. The agent may display, place or insert theadvertisement/augmented content in a break while a subsequent contentportion is loading or during the loading of the subsequent contentportion.

The agent may create a break in a content portion or between contentportions. The agent may add lines, white space or other content toseparate the content portion into multiple portions with one or morebreaks between such sub-portions. The agent may increase an existingbreak between content portions, such as increasing the number of linesor white space between paragraphs. The agent may decrease an existingbreak between content portions, such as decreasing the number of linesor white space between paragraphs. The agent may display, place orinsert the advertisement/augmented content in the created break.

The agent may display, place or insert the advertisement on the pageprior to completing loading the page. The agent may display, place orinsert the advertisement/augmented content on the page upon completingloading the page. The agent may display, place or insert theadvertisement/augmented content on the page upon completing loading thecontent portion on the page. The agent may display, place or insert theadvertisement/augmented content on the page upon completing loading asubsequent or adjacent content portion on the page, Step 870 may includeany embodiments of step 592′, 594′ and 596′ described in connection withFIG. 5K. The advertisement/augmented content may be displayed in atranslucent or opaque manner over or on top of the content portion,break or a portion thereof.

The agent may insert, place, position or display theadvertisement/augmented content within the boundaries of the break. Theagent may insert, place, position or display the advertisement/augmentedcontent so that a portion of the advertisement/augmented content iswithin the boundaries of the break. The agent may insert, place,position or display the advertisement to replace a portion of the image.The agent may insert, place, position or display theadvertisement/augmented content as an overlay to the content portion.The agent may insert or integrate the advertisement/augmented content aspart of the content portion. The agent may insert, place, position ordisplay the advertisement/augmented content into any location on, in orwithin the break. The agent may insert, place, position or display theadvertisement/augmented content into any advertisement/augmented contenton the content portion. The agent may insert, place, position or displaythe advertisement into at a location on the page, content portion orbreak specified by the campaign. The agent may insert, place, positionor display the advertisement/augmented content at a location on the onthe page, content portion or break specified by the contextualizationservice. The agent may insert, place, position or display theadvertisement/augmented content into a location on the page, contentportion or break determined by the agent. The agent may insert, place,position or display the advertisement/augmented content at a header orfooter of the break. The agent may insert, place, position or displaythe advertisement/augmented content at a header or footer of the contentportion. The agent may insert, place, position or display theadvertisement/augmented content as a footer bar to the content portion.The agent may insert, place, position or display theadvertisement/augmented content on or within any side border of thecontent portion or break. The agent may insert, place, position ordisplay the advertisement/augmented content on or within any top borderon or within the break or content portion.

At step 875, the user interacts with the advertisement/augmentedcontent. The user may scroll past a current content portion to put intoview on the mobile device the break having the advertisement/augmentedcontent. The user may place a pointer or highlight the break having theadvertisement/augmented content. The user may select any portion of theadvertisement/augmented content to gain access toadvertisement/augmented content. Selecting or clicking on theadvertisement/augmented content may navigate the user to an applicationon the mobile device, referred to as an app. Selecting or clicking onthe advertisement/augmented content may navigate the user to a web site,such as a web-site of an advertiser or publisher. The user may hoverover any section of the advertisement/augmented content for apredetermined time to cause the advertisement to expand. The user mayhover over any section of the advertisement/augmented content for apredetermined time to display an overlay or tooltip over theadvertisement/augmented content. In some cases, theadvertisement/augmented content may be removed, hidden or otherwiseundisplayed after a predetermined time period or after user activity,such as detection of certain actions.

We claim:
 1. A method for dynamically including augmented content, themethod comprising: detecting, by an agent executing on a web browser ofa mobile device, that a first content portion of a web page is beingscrolled into view within a display of the mobile device, the firstcontent comprising a first predefined keyword; creating, by the agentresponsive to the detection, a break in the web page near a location ofthe first predefined keyword on the web page; and displaying, by theagent responsive to the created break, augmented content within thecreated break, the augmented content determined according to the firstpredefined keyword.
 2. The method of claim 1, wherein the detectingcomprises determining that the first content portion meets apredetermined criteria, wherein the predetermined criteria relates to atleast one of: metadata of the first content portion, or a location ofthe first content portion relative to a predefined section or area ofthe web page.
 3. The method of claim 1, wherein the detecting comprisesdetecting that a paragraph of text is being scrolled into view withinthe display.
 4. The method of claim 1, wherein at least one of thecreating and the displaying is responsive to a determination that thefirst content portion is in view within the display for at least apredetermined length of time.
 5. The method of claim 1, wherein thecreating comprises creating the break prior to, within or after thefirst content portion of the web page.
 6. The method of claim 1, whereinthe displaying comprises inserting the augmented content in the breakwhile the web page is being loaded onto the web browser.
 7. The methodof claim 1, further comprising sending, by the agent to a server, webpage data comprising text identified from the portion of the web page,and receiving, by the agent from the server, the augmented content. 8.The method of claim 1, further comprising receiving, by the agent from aserver, the augmented content, the augmented content comprising anadvertisement for a campaign selected according to the first predefinedkeyword.
 9. The method of claim 1, comprising creating, by the agent,the break responsive to a determination that a natural or existing breakproximate to first content portion is beyond a predetermined distance.10. The method of claim 1, further comprising sending, by the agent to aserver, web page data comprising text identified from a second contentportion of the web page, and receiving, by the agent from the server,the augmented content.
 11. A system for dynamically including augmentedcontent, the system comprising: an agent executing on a web browser of amobile device, the agent configured to: detect that a first contentportion of a web page is being scrolled into view within a display ofthe mobile device, the first content comprising a first predefinedkeyword; create, responsive to the detection, a break in the web pagenear a location of the first predefined keyword on the web page; anddisplay, responsive to the created break, augmented content within thecreated break, the augmented content determined according to the firstpredefined keyword.
 12. The system of claim 11, wherein the agent isfurther configured to determine that the first content portion beingscrolled into view within the display meets a predetermined criteria,wherein the predetermined criteria relates to at least one of: metadataof the first content portion, or a location of the first content portionrelative to a predefined section or area of the web page.
 13. The systemof claim 11, wherein the first content portion comprises a paragraph oftext.
 14. The system of claim 11, wherein the agent is furtherconfigured to perform at least one of the creating and the displaying,responsive to a determination that the first content portion is in viewwithin the display for at least a predetermined length of time.
 15. Thesystem of claim 11, wherein the agent is further configured to createthe break prior to, within or after the first content portion of the webpage.
 16. The system of claim 11, wherein the agent is furtherconfigured to insert the augmented content in the break while the webpage is being loaded onto the web browser.
 17. The system of claim 11,wherein the agent is further configured to send web page data to aserver comprising text identified from the portion of the web page, andto receive the augmented content from the server.
 18. The system ofclaim 11, wherein the agent is further configured to receive from aserver the augmented content, the augmented content comprising anadvertisement for a campaign selected according to the first predefinedkeyword.
 19. The system of claim 11, wherein the agent is furtherconfigured to create the break responsive to a determination that anatural or existing break proximate to the first content portion isbeyond a predetermined distance.
 20. The system of claim 11, wherein theagent is further configured to send web page data to a server comprisingtext identified from a second content portion of the web page, and toreceive the augmented content from the server.